- 工程的创建
本驱动程序是基于STM32CUBEmx实现LCD液晶显示功能。
时钟分频的配置什么的不再赘述,Z小璇大佬有详解,可以说我的32全是跟大佬学的。
STM32对于LCD的驱动依靠FSMC功能进行通讯,因此需要对FSMC进行配置。
在Connectivity中找到FSMC,选择第一个NOR Flash/PSRAM/SRAM/ROM/LCD1
这里的参数根据你的原理图来选择这里我使用的是德飞莱的七星LCD显示模块
因此在我的参数设置中,我的芯片选择为NE4,memory type就选择LCD interface。
LCD register和data也和原理图匹配,选择A10,DATA选择16bits。
LCD需要背光因此一定要设置背光,这里是PB0为背光,因此将PB0设置为GPIO_OUTPUT,同时记得设置为高电平。
- 程序使用
将LCD的驱动文件解压缩后的inc和src内的文件分别放入新建工程的inc和src文件当中,同时在keil工程文件中加入对应的.c和.h文件
在路径中加入文件
放入路径后在主函数中的/* USER CODE BEGIN Includes */加入
#include "lcd_header.h"
由于LCD初始化可能出现问题因此需要在初始化中加入一个延迟
HAL_Delay(100);
LCD_Init(&HAL_Delay);
- 功能实现
所有的函数都在这里,我以清屏作为演示
双击LCD_Clear,将void后面的LCD_Clear(uint16_t color)
复制到while中,删除括号内容填写填充色,这里我做了三个颜色
/* USER CODE END WHILE */
LCD_Clear(RED);
HAL_Delay(100);
LCD_Clear(GREEN);
HAL_Delay(100);
LCD_Clear(BLUE);
HAL_Delay(100);
/* USER CODE BEGIN 3 */
编译成功下载到单片机可以看到
https://pan.baidu.com/s/1oBJEcCcQtJjwqViibde6Pw
密码9958