目錄
1、簡介
2、CubeMX初始化配置
2.1 基礎(chǔ)配置
2.1.1 SYS配置
?2.1.2 RCC配置
2.2 屏幕引腳配置
2.3 項(xiàng)目生成
?3、KEIL端程序整合
3.1 LCD驅(qū)動(dòng)添加
3.2?函數(shù)修改
3.2.1?lcd.h修改
3.2.2 lcd_innit.h?修改
?3.2.3 lcd.c修改
?3.2.4?lcd_inut.c修改
?3.3?主函數(shù)代碼
3.3.1 添加頭文件
3.3.2?LCD進(jìn)行初始化
3.3.3?while中添加如下代碼
4、硬件連接
5、 效果展示
1、簡介
屏幕廠家提供的都是標(biāo)準(zhǔn)庫,網(wǎng)上找了找沒看到好用的HAL庫屏幕驅(qū)動(dòng),因此本文對(duì)HAL庫驅(qū)動(dòng)TFT屏幕進(jìn)行詳細(xì)講解。
2、CubeMX初始化配置
2.1 基礎(chǔ)配置
2.1.1 SYS配置
?2.1.2 RCC配置
2.2 屏幕引腳配置
2.3 項(xiàng)目生成
?3、KEIL端程序整合
3.1 LCD驅(qū)動(dòng)添加
首先打開廠家提供的便準(zhǔn)庫文件找到LCD驅(qū)動(dòng),驅(qū)動(dòng)鏈接:點(diǎn)此跳轉(zhuǎn)。
首先在Core/Src目錄下,添加lcd.c,lcd_init.c如下圖所示:
?
?接著在Core/Inc目錄下,添加對(duì)應(yīng)的.h文件如下圖所示:
?
?接著對(duì)驅(qū)動(dòng)進(jìn)行添加如下圖所示:?
3.2?函數(shù)修改
3.2.1?lcd.h修改
將原來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?修改
?首先也是將原來llcd_innit.h中?#include "sys.h"刪除,并且添加如下代碼:
#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
接著將LCD端口定義函數(shù)用如下代碼替換:
#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)
?3.2.3 lcd.c修改
將頭文件#include "delay.h"刪除
?3.2.4?lcd_inIt.c修改
1、將頭文件#include "delay.h"刪除
2、添加頭文件#include "spi.h"
3、將?LCD_GPIO_Init(void)函數(shù)內(nèi)全部注釋,如下圖所示:
4、將LCD_Writ_Bus(u8 dat)?)函數(shù)用以下代碼替換,如下圖所示:
LCD_CS_Clr();
HAL_SPI_Transmit(&hspi1,&dat,1, 1000);
LCD_CS_Set();
?5、延時(shí)函數(shù)替換
CTRL+F進(jìn)行整體替換
?3.3?主函數(shù)代碼
3.3.1 添加頭文件
#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"
3.3.2?LCD進(jìn)行初始化
float t=0;
LCD_Init();//LCD初始化
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
?添加位置如下圖所示:
3.3.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_1);
4、硬件連接
VCC----3.3V
GND---GND
A1 ---- BL/LED
A2 ---- RES/RST
A3 ---- DC/RS
A4?---- CS
A5?---- SCLK
A7 ---- MOSI/SDA
八引腳或者11引腳都只需按照上訴連接即可。
5、 效果展示
·文章來源:http://www.zghlxwxcb.cn/news/detail-771365.html
上文如有錯(cuò)誤,懇請(qǐng)各位大佬指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-771365.html
到了這里,關(guān)于STM32(HAL庫)驅(qū)動(dòng)(1.44寸)TFT-LCD彩屏的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!