目录
原理图解析
设置STM32CubeMX
配置文件
测试LCD屏函数
实例运用
正文
原理图解析
观察LCD的原理图,LCD的引脚比较多,在下一个步骤设置STM32CubeMX时,最好一一对应地去设置,以免缺漏。
但需要注意的是,在官方文件的实例代码中,已有LCD.c与.h文件,我们可以直接移动到我们的工程文件即可
设置STM32CubeMX
对照原理图将各个引脚设置好即可
配置文件
这一步与上一步选择一个便可。推荐使用官方资料中的文件,因为方便快捷,且不易出错。
在官方资料中找到fonts.h与lcd.h,还有lcd.c三个文件,复制到我们工程文件bsp中。
打开keil5
右击左侧Project中的bsp文件,点击添加文件到bsp中,选中lcd.c添加即可
测试LCD屏函数
我们打开刚刚找lcd.c文件同文件夹中的main.c,部分如下:
LCD_Init(); //LCD初始化 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ LCD_Clear(Blue); //LCD清屏 LCD_SetBackColor(Blue); //LCD背景颜色 LCD_SetTextColor(White); //LCD文本颜色 LCD_DisplayStringLine(Line0, (uint8_t *)" "); LCD_DisplayStringLine(Line1, (uint8_t *)" "); LCD_DisplayStringLine(Line2, (uint8_t *)" LCD Test "); LCD_DisplayStringLine(Line3, (uint8_t *)" "); LCD_DisplayStringLine(Line4, (uint8_t *)" "); LCD_SetBackColor(White); LCD_SetTextColor(Blue); LCD_DisplayStringLine(Line5, (uint8_t *)" "); LCD_DisplayStringLine(Line6, (uint8_t *)" HAL LIB "); LCD_DisplayStringLine(Line7, (uint8_t *)" "); LCD_DisplayStringLine(Line8, (uint8_t *)" @80 "); LCD_DisplayStringLine(Line9, (uint8_t *)" ");
可以看到,LCD的初始化已经是现成的了,不需要我们再去写,所以我们在给LCD初始化时直接调用 “ LCD_Init(); ” 即可。
下面还有三个函数,作用分别如下:
LCD_Clear(Blue); | LCD清屏,并选择清屏后的颜色 |
LCD_SetBackColor(Blue); | LCD背景颜色 |
LCD_SetTextColor(White); | LCD文本颜色 |
最后一个函数就是指定在第几行什么位置显示上面文本了,如:
LCD_DisplayStringLine(Line2, (uint8_t *)" LCD Test ");
就是在LCD屏第三行,显示 LCD Test ,空格也是占格数的哦。
可以将这一部分拷贝到自己的主函数中,然后烧入开发板中去试试,看看有什么效果。
实例运用
我们以第十三届省赛题中的LCD为例子试一试:
题目如下:
写代码时,一定要注意行数与列数必须和题目中一样哦(特别是空格要数对),大家可以先写出来,再看下面的代码,有什么异同欢迎评论哦。
代码实现
int X_shop = 1,Y_shop = 8; char text[30]; sprintf(text," SHOP "); LCD_DisplayStringLine(Line1, (uint8_t *)text); sprintf(text," X:%d",X_shop); LCD_DisplayStringLine(Line3, (uint8_t *)text); sprintf(text," Y:%d",Y_shop); LCD_DisplayStringLine(Line4, (uint8_t *)text);