目錄
1、簡介
2、CubeMX初始化配置
2.1 基礎配置
2.1.1 SYS配置
?2.1.2 RCC配置
2.2 屏幕引腳配置
2.3 項目生成
?3、KEIL端程序整合
3.1 LCD驅動添加
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進行初始化
3.3.3?while中添加如下代碼
4、硬件連接
5、 效果展示
1、簡介
屏幕廠家提供的都是標準庫,網(wǎng)上找了找沒看到好用的HAL庫屏幕驅動,因此本文對HAL庫驅動TFT屏幕進行詳細講解。
2、CubeMX初始化配置
2.1 基礎配置
2.1.1 SYS配置
?2.1.2 RCC配置
2.2 屏幕引腳配置
2.3 項目生成
?3、KEIL端程序整合
3.1 LCD驅動添加
首先打開廠家提供的便準庫文件找到LCD驅動,驅動鏈接如下:
LCD_7引腳240x240 https://www.aliyundrive.com/s/EKDhHV6dKqx 點擊鏈接保存,或者復制本段內(nèi)容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。
首先在Core/Src目錄下,添加lcd.c,lcd_init.c如下圖所示:
?
?接著在Core/Inc目錄下,添加對應的.h文件如下圖所示:
?
?接著對驅動進行添加如下圖所示:?
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ù)替換
CTRL+F進行整體替換
HAL_Delay
?3.3?主函數(shù)代碼
3.3.1 添加頭文件
#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"
3.3.2?LCD進行初始化
float t=0;
u8 i,j;
LCD_Init();//LCD初始化
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
?添加位置如下圖所示:
3.3.3?while中添加如下代碼
LCD_ShowChinese(0,0,"中景園電子",RED,WHITE,32,0);
LCD_ShowString(0,40,"LCD_W:",RED,WHITE,16,0);
LCD_ShowIntNum(48,40,LCD_W,3,RED,WHITE,16);
LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
LCD_ShowIntNum(128,40,LCD_H,3,RED,WHITE,16);
LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
LCD_ShowString(0,70,"Increaseing Nun:",RED,WHITE,16,0);
LCD_ShowFloatNum1(128,70,t,4,RED,WHITE,16);
t+=0.11;
for(j=0;j<3;j++)
{
for(i=0;i<6;i++)
{
LCD_ShowPicture(40*i,120+j*40,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
5、 效果展示
文章來源:http://www.zghlxwxcb.cn/news/detail-605322.html
上文如有錯誤,懇請各位大佬指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-605322.html
到了這里,關于STM32(HAL庫)驅動st7789LCD屏幕(7引腳240*240)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!