写在前面——
《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.4 LCD显示实验,实现在不同要求下进行LCD显示字符。
官方例程下载:https://pan.baidu.com/s/1QC5BnDgY1m1me6-ihQ_OUQ?pwd=nqb1
提取码:nqb1
目录
4.4 LCD显示实验
4.4.1. 实验任务
- 字符显示:参看官方例程HAL_06_LCD, LCD初始化配置,实现字符显示。
- 拓展功能:改变背景、字体颜色、格式(sprintf)等。
4.4.2. 硬件连接
LCD的使用,官方提供例程,直接使用即可,无需配置;需要注意的是,他的接口和LED有重叠 。
4.4.3. 初始化配置(STM32CubeMX)
对于LCD,直接使用官方提供的初始化驱动程序,只需要移植过来就行了。
根据当前任务需求,若需要配置LED、按键等GPIO,请按照前述各实验操作进行。
这里,按照前述方法,选择目标器件stm32G431RBT6,配置RCC、SYS,设置时钟为80MHz,填写工程名称(如lcd)、路径,即可完成工程初始化配置。
通常,不用在STM32CubeMX中配置LCD。
4.4.4. 应用程序设计(KEIL5)
1. 在项目工程中配置LCD
1)复制初始化例程到工程文件夹中
将官方提供的资源包中的fonts.h和lcd.h文件复制到自己所建的工程文件夹对应的Inc文件夹下,将资源包中的lcd.c文件复制到自己所建的工程文件夹对应的Src文件夹下,随后打开工程文件。(在例程6(HAL_06_LCD)中Inc和Src文件夹中也有这些文件)
2)将led.c文件添加进项目工程当中
头文件fonts.h和lcd.h在Inc文件夹下,已在库文件搜索路径中,无需再操作了。若放在其他文件夹下,则自行添加其路径。
3)LCD初始化
main.c中添加相关语句,并初始化LCD
首先引用lcd.h,不需要引用font.h(已在lcd.c中引用了,重复引用会报错)
再进行LCD初始化。
2. 字符显示
LCD为20x10,一行最多显示20个字符,不要溢出,一共有10行(Line0-Line9)。
在lcd.h中已定义颜色相关的常量:
/* LCD color */
#define White 0xFFFF
#define Black 0x0000
#define Grey 0xF7DE
#define Blue 0x001F
#define Blue2 0x051F
#define Red 0xF800
#define Magenta 0xF81F
#define Green 0x07E0
#define Cyan 0x7FFF
#define Yellow 0xFFE0
在lcd.h中已定义行数相关的常量:
#define Line0 0
#define Line1 24
#define Line2 48
#define Line3 72
#define Line4 96
#define Line5 120
#define Line6 144
#define Line7 168
#define Line8 192
#define Line9 216
在lcd.c中已定义一系列的函数,部分函数功能介绍:
void LCD_In