STM32F103C8T6点亮1.44寸彩色TFT-LCD屏幕:HAL库实现

1.软件准备

(1)编程平台:Keil5

(2)CubeMX

(3)中景园屏幕资料链接:点击跳转        提取码:8888

2.硬件准备

(1)1.44寸TFT彩屏

(2)F1的板子,本例使用经典F103C8T6

(3)ST-link 下载器

(4)杜邦线若干

3.模块资料

(1)模块简介:

        1.44寸彩色液晶显示模块,128×128分辨率,内置ST7735S控制器,可选配触摸屏,高画质,宽视角,支持8080 8-bit 并行接口与3线、4线串行接口,65K/262K真彩色,FPC连接(可选配连接器),2.8V电压,支持横屏或竖屏显示。

(2)模块部分参数

①控制芯片:ST7735S

②接口类型:4线SPI

③工作电压:2.8V——3.3V

④工作电流:15mA

⑤模块引脚数量:8 Pin

⑥模块尺寸:30*46.50*3.45  mm

4.CubeMX配置

(1)芯片选择

 (2)配置RCC、SYS、时钟树

配置RCC

配置SYS

配置时钟树

 (3)配置SPI1

 (4)配置GPIO

  (5)设置路径、生成代码工程 

5、Keil5代码

(1)添加文件

 

 

(2)添加头文件路径

  (3)编译一次并跳转错误到lcd.h和lcd_innit.h

两个错误分别来自lcd.h和lcd_innit.h

 (4)lcd.h和lcd_innit.h修改

①将原来的 #include "sys.h"变为如下

#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t

 ②lcd_innit.h还要改独自改一处

引脚宏定义部分全部用以下代码替代:

 

#define LCD_RES_Clr()  HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_RESET)//RES
#define LCD_RES_Set()  HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_SET)

#define LCD_DC_Clr()   HAL_GPIO_WritePin(TFT_DC_GPIO_Port,TFT_DC_Pin, GPIO_PIN_RESET)//DC
#define LCD_DC_Set()   HAL_GPIO_WritePin(TFT_DC_GPIO_Port,TFT_DC_Pin, GPIO_PIN_SET)
 		     
#define LCD_CS_Clr()   HAL_GPIO_WritePin(TFT_CS_GPIO_Port,TFT_CS_Pin, GPIO_PIN_RESET)//CS
#define LCD_CS_Set()   HAL_GPIO_WritePin(TFT_CS_GPIO_Port,TFT_CS_Pin, GPIO_PIN_SET)

#define LCD_BLK_Clr()  HAL_GPIO_WritePin(TFT_BL_GPIO_Port,TFT_BL_Pin, GPIO_PIN_RESET)//BLK
#define LCD_BLK_Set()  HAL_GPIO_WritePin(TFT_BL_GPIO_Port,TFT_BL_Pin, GPIO_PIN_SET)

(5)lcd.c修改

删除#include "delay.h"头文件即可

(6)lcd_inut.c修改

①修改#include "delay.h"头文件为#include "spi.h"

②删除掉此函数的全部内容void LCD_GPIO_Init(void)

③修改写字节函数

①②③总结即如下:

 HAL_SPI_Transmit(&hspi1,&dat,1, 1000);  

④修改延时函数

 

 HAL_Delay(100);

(7)main.c函数

①添加头文件

#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"

②while循环前添加:

float t=0;
LCD_Init();//LCD初始化
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);

③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_1);

6.接线图及效果

   本例程源码下载:点击跳转 

物联沃分享整理
物联沃-IOTWORD物联网 » STM32F103C8T6点亮1.44寸彩色TFT-LCD屏幕:HAL库实现

发表评论