STM32使用HAL库驱动中景园TFTLCD显示屏模块全面指南
2.1.2 SYS配置
2.1.3 GPIO引脚配置
2.1.4 SPI配置
2.1.5 时钟树配置
2.1.6 项目生成
3、Keil代码搬运
3.1 标准库文件获取
打开厂家提供的标准库文件,文件链接:提取码:8888
获取后进行解压缩(提起吗错误可自行前往某宝中景园对应屏幕详细处获取)
3.2 驱动添加
打开厂家提供的标准库文件,将\*\HARDWARE\LCD中的lcd.c、lcd.h、lcd_init.c、lcd_init.h、pic.h、lcdfont.h粘贴至CubxMX生成代码文件夹目录\*\Src目录下(文件夹内任何目录都可,后续添加路径过程自行替换即可),如图:
接着在CubxMX生成代码中添加程序:
3.3 代码修改
3.2.1 lcd.h修改
删除原有#include “sys.h”,添加下列代码:
#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
其余不变
3.2.2 lcd_init.h修改
删除原有#include “sys.h”,添加下列代码:
#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
将LCD端口定义函数换成如下函数:
//RES
#define LCD_RES_Clr() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET)
#define LCD_RES_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET)
//DC
#define LCD_DC_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET)
#define LCD_DC_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET)
//CS
#define LCD_CS_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET)
#define LCD_CS_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET)
//BLK
#define LCD_BLK_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET)
#define LCD_BLK_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET)
其余不变
3.2.3 lcd.c修改
删除原有#include “sys.h”
3.2.4 lcd_init.c修改
1,删除原有#include “sys.h”
2,添加头文件#include “spi.h”
3,删除整个void LCD_GPIO_Init(void)初始化函数
4,将LCD_Writ_Bus(u8 dat)换成如下代码:
void LCD_Writ_Bus(u8 dat)
{
LCD_CS_Clr();
HAL_SPI_Transmit(&hspi1,&dat,1, 1000);
LCD_CS_Set();
}
5,找到void LCD_Init(void)函数,将延时函数delay_ms替换成HAL_Delay
3.2.5 main.c修改
1,添加头文件
#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"
2,LCD初始化
3,while中添加代码
将厂家提供的标准库搬运过来即可
LCD_ShowChinese(0,0,"中景园电子",RED,WHITE,24,0);
LCD_ShowString(24,30,"LCD_W:",RED,WHITE,16,0);
LCD_ShowIntNum(72,30,LCD_W,3,RED,WHITE,16);
LCD_ShowString(24,50,"LCD_H:",RED,WHITE,16,0);
LCD_ShowIntNum(72,50,LCD_H,3,RED,WHITE,16);
LCD_ShowFloatNum1(20,80,t,4,RED,WHITE,16);
t+=0.11;
LCD_ShowPicture(80,70,40,40,gImage_gImage_1);
4 硬件连接
BLK —-> PA1
C S —-> PA2
D C —-> PA3
RES —-> PA4
作者:普通网友