总结一下:STM32F429内部集成了LCD屏幕控制器LTDC。当我们初始化好了LTDC就能通过更改显存去更改LCD显示的内容。
LTDC 的DMA 会自动去发送刷新LCD数据。
硬件:7寸RGB显示屏,不支持透明度设置。
STM32CubeMX配置图
1、先去定引脚
2、根据手册写好宏定义
一定要配置好LCD刷新的时钟。
因为我的屏幕不支持透明度,所以一层就够了。
因为屏幕分辨率为800*480;故还需要加入SDRAM,作为显存。
生成代码。
#include "test.h"
uint16_t buff[800*480] __attribute__((at(0XC0000000)));
int main(void)
{
uint32_t i = 0;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
printf("sudaroot\r\n");
MX_FMC_Init();
SDRAM_Initialization_Sequence(&hsdram1); //SDRAM初始化
memset(buff, 0, sizeof(buff)); //显存空间置0
MX_LTDC_Init();
while (1)
{
for(i = 0; i < 800*480; i++)
buff[i] = 0xf800;
HAL_Delay(1000);
for(i = 0; i < 800*480; i++)
buff[i] = 0x07e0;
HAL_Delay(1000);
for(i = 0; i < 800*480; i++)
buff[i] = 0x001f;
HAL_Delay(1000);
}
}
现象:屏幕红绿蓝交替显示。
全篇完。
本人是一个嵌入式未入门小白,博客仅仅代表我个人主观见解,记录成长笔记。
笔记是以最简单的方式,只展示最核心的原理。
若有与 大神大大 见解有歧义,我绝对坚信 大神大大 见解是对的,我的是错的。
若无积分等无法下载源码,可加入QQ群657407920下载交流经验。感谢~!