【STM32+HAL】LCD显示及触摸初始化配置

一、所用工具:

1、芯片: STM32F407ZGT6

2、STM32CubeMx软件

3、IDE: MDK-Keil软件

4、显示屏:正点原子4.3寸TFT LCD MCU电阻屏 480*800

二、实现功能:

初始化LCD显示、触摸

三、准备工作:

1、有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32+HAL】CUBEMX初始化配置

2、准备好商家提供的LCD文件(本文末附)

四、LCD显示配置步骤:

1、配置FSMC

2、配置LCD屏幕的背光引脚

背光引脚图

至此,HAL库配置完成

3、创建LCD的C文件和H头文件

4、将例程中的代码复制到LCD.h中

注意:需要删去头文件

改为添加以下代码

#include "stdint.h"
#include "main.h"
#include "stdio.h"

typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef volatile u8 vu8;
typedef volatile u16 vu16;
typedef volatile u32 vu32;

5、将 extern SRAM_HandleTypeDef TFTSRAM_Handler; 这条语句注释

2

6、将#include "lcd.h"添加到main.c并添加头文件路径,编译通过无错误

7、将例程中的lcd.c的内容复制到新建的lcd.c文件中,同样的不需要把头文件的引入复制

先引入#include "lcd.h",并同样注释掉 SRAM_HandleTypeDef TFTSRAM_Handler;这条代码

以及以下打框代码

 8、将代码中的延时函数替换

同时,将文件中微秒延时语句都替换为 HAL_Delay(1);

9、 添加例程文件中的font.c到指定文件夹,并在lcd.c文件中引入#include "font.h"头文件

10、替换宏定义代码

将下图中带红框代码替换为 HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET);

 至此,LCD显示部分配置完成,开始配置LCD触摸功能。

五、LCD触摸屏配置步骤:

1、配置一个1us的定时器

2、创建一个HARDWARE文件夹

将官方例程中的24CXX、IIC、TOUCH、sys文件夹复制到项目中,同时把移植好的LCD驱动也放到HARDWARE文件夹中,放好后添加头文件路径


 

 3、使用定时器6来做延时1us函数用作产生IIC时序

首先创建TIMx_Delay.h和TIMx_Delay.c文件

 TIMx_Delay.h:

#ifndef CPROJECT_TIMX_DELAY_H
#define CPROJECT_TIMX_DELAY_H
#include "tim.h"

#define DEL_TIM_Handle &htim6

void delay_us(uint16_t us);

#endif

TIMx_Delay.c:

//源文件
#include "TIMx_Delay.h"

void delay_us(uint16_t us)
{
    __HAL_TIM_SET_COUNTER(DEL_TIM_Handle, 0);
    __HAL_TIM_ENABLE(DEL_TIM_Handle);
    while(__HAL_TIM_GET_COUNTER(DEL_TIM_Handle) < us);
    __HAL_TIM_DISABLE(DEL_TIM_Handle);
}

至此,触摸屏配置完成。

六、参考文章

正点原子STM32F4探索者开发板HAL库TFT LCD屏幕例程移植到STM32CubeMX+CLion

正点原子STM32F4探索者开发板HAL库触摸屏例程移植到STM32CubeMX+CLion

七、源码提供

LCD显示及触摸初始化配置

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值