主控板:STM32G431RBT6
板载下载器:DAPLINK
软件:STM32CubeMX、Keil MDK5
文章目录
- 1、工程配置
- 2、代码编写
- 3、显示结果
- 4、问题与总结
- (1)注意检查测试
- (2)注意格式
- (3)烧录时报错
1、工程配置
- 在首篇配置好的工程中根据数据手册继续配置工程,如下图所示:
就是将LCD所对应的端口设置为GPIO_Output。
- 库移植:在官方资料包中包括了LCD屏的驱动例程可以进行移植,将其中的
lcd.h
、lcd.c
和fonts.h
文件复制到BSP
文件夹中,并在工程中加入文件。
2、代码编写
- main.c
//先引用库函数 #include "lcd.h" #include "led.h" #include "stdio.h" //初始化并编辑显示内容 LCD_Init(); LCD_Clear(Black); LCD_SetBackColor(Black); LCD_SetTextColor(White); LCD_DisplayStringLine(Line3, (uint8_t *)"Dear Mr.Li: "); LCD_DisplayStringLine(Line5, (uint8_t *)" kiss kiss."); HAL_Delay(1000);
3、显示结果
4、问题与总结
(1)注意检查测试
在编写代码前首先需要烧录测试例程检查板子和库函数确认都没问题。商家发给我的例程中lcd.c文件存在问题无法显示内容,耽误了很多时间。
(2)注意格式
- 在往届真题中都会对显示内容的格式有要求,比如背景色、字体颜色或行数等。
LCD_Clear(Blue2); //蓝色清屏 LCD_SetBackColor(Black); //黑色背景 LCD_SetTextColor(Red); //红色字体 //字体颜色改为白色 LCD_SetTextColor(White); sprintf(buf , "AT24C02 Count: %d", val); //输出,注意占位符 LCD_DisplayStringLine(Line1, (uint8_t *)buf); //在第一行输出 LCD_DisplayStringLine(Line8, (uint8_t *)"None key pressed"); //在第八行输出
- 官方例程中规定了如下十个颜色和十个Line。
LCD_Clear(Blue2); LCD_SetBackColor(Blue2); LCD_SetTextColor(Red); /* 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 #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
(3)烧录时报错
- 烧录程序时出现弹窗提示以下报错:“cannot load flash device description”,可能是因为没有找到对应得flash下载算法,可以尝试以下解决办法:
- 首先根据下图标识路径找到Debug中的Settings,观察Port的SW选项是否选对,再进入Flash Download选项;
- 之后利用Add按钮添加对应的Flash算法文件(弹窗中会有提示),再点击OK即可。
- 首先根据下图标识路径找到Debug中的Settings,观察Port的SW选项是否选对,再进入Flash Download选项;
参考资料
(1)B站学习视频:【备战2024蓝桥杯 嵌入式组】CT117E-M4 新款开发板 3小时省赛模块 速成总结
(2)keil5——常见报错【cannot load flash device description】
(3)蓝桥杯嵌入式2024年资料包(stm32G431RBT6–CT117-M4)