正点原子F429开发板使用STM32CubeMX驱动4.3寸 RGB LCD

正点原子F429开发板使用STM32CubeMX驱动4.3寸 RGB LCD

发现最近随便转载的很多啊,未经授权禁止转载!抄袭!!否则转载者死全家!!另外这是我的笔记,不是教程,难免会有错误,不具有很高的参考性,望周知。

​ 我不是买了一块4.3寸野火和正点原子双兼容的屏幕嘛,在测试和使用过程中积累了些许的经验,在此分享一下。

为什么这块屏幕能够做到双兼容?

​ 首先要说明的是这块屏幕使用的是RGB的接口,并不是使用的MCU接口。RGB屏幕在使用时只需要配置好屏幕的时钟和一些扫描参数就可以了,而MCU屏幕需要对其写入指令,较为复杂。因此找到一款扫描参数和原厂相同的RGB屏幕要比找到一款使用相同主控的MCU屏幕容易得多,甚至你可以找到不同面板(TN和IPS)的RGB屏幕,而MCU屏幕除了进行定制,往往只能找到和原厂一样面板的屏幕(吐槽正点原子4.3寸800*480分辨率的MCU屏使用的是TN面板)。

STM32CubeMX配置步骤

首先配置F429的RCC时钟部分,使用外部时钟信号。

接下来配置GPIO部分。

PB5为背光控制引脚,高电平时背光打开。

接下来是LTDC部分的引脚。因为正点原子F429开发板使用的是重映射后的引脚,所以这里需要手动设置这部分引脚复用为LTDC。引脚列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**LTDC GPIO Configuration
PI9 ------> LTDC_VSYNC
PI10 ------> LTDC_HSYNC
PF10 ------> LTDC_DE
PH9 ------> LTDC_R3
PH10 ------> LTDC_R4
PH11 ------> LTDC_R5
PH12 ------> LTDC_R6
PG6 ------> LTDC_R7
PG7 ------> LTDC_CLK
PH13 ------> LTDC_G2
PH14 ------> LTDC_G3
PH15 ------> LTDC_G4
PI0 ------> LTDC_G5
PI1 ------> LTDC_G6
PI2 ------> LTDC_G7
PG11 ------> LTDC_B3
PI4 ------> LTDC_B4
PI5 ------> LTDC_B5
PI6 ------> LTDC_B6
PI7 ------> LTDC_B7
*/

接下来打开DMA2D,选择数据格式为RGB565。传输方向为寄存器到内存

接着设置LTDC部分的参数。根据屏幕的参数来输入水平同步时钟宽度水平后廊宽度水平像素宽度水平前廊宽度垂直同步时钟宽度垂直后廊宽度垂直像素宽度垂直前廊宽度

设置显存地址,显存大小,显示层数。

设置像素参数和数据格式。

设置时钟树。系统主时钟为180MHz,LCD-TFT时钟经过倍频和分频后为30MHz。这里需要注意LCD-TFT的频率不要过高也不能过低,否则屏幕无法正常显示。

设置完毕。

Image2Lcd 生成图片数据

打开Image2Lcd软件,生成图片数据。这里输出数据类型设置为c语言数组,方便我们进行测试。

Keil 修改工程并下载测试

使用Keil打开工程,并将刚才生成的.c文件添加到工程,添加外部数组声明,并修改显存地址。让屏幕直接输出图片内容。

至此,工程修改完毕,尽行下载测试,下载过程稍慢,测试效果如图。

效果不错,就是最下面有条白色的bar。后来发现是因为我选择的图片比例与屏幕的比例不匹配导致,Image2Lcd软件并没有自动拉伸图片的功能,在生成图片数组时,Image2Lcd软件已经给出了提示,如图。

后选择合适的图片后,图像可以全屏显示。

坚持原创技术分享,您的支持是我前进的动力!