起因
最近画的板子回来了,正好试验一下画的LCD接口是否有问题,买的正点原子的7寸lcd屏幕,使用Cubemx去配置LTDC点亮lcd。
工程配置
首先打开Cubemx,选好芯片型号(我用的是STM32H750XBH6),配置高速外部时钟;
时钟树配置主频为400MHz(时钟速度按照自己需求来,我一般开到400M完全够用);
打开LTDC,选择RGB888模式,再根据你的原理图修改相应的引脚,将所有的引脚速度设置为Very High;
根据你的LCD屏的数据手册,对相关的参数进行配置;
此处可以配置LCD底层的颜色,我的格式为RGB888,所以红绿蓝的范围为0-255,此处我先不进行设置颜色,到后面会说为什么不设置颜色;
我们将此处设置为只有底层和一个混色层,然后在第一层开辟一个位置,用来显示我从RAM里读到的图像数据,图像数据格式为RGB888,然后第一层和底层的混色调到最大255,也就是第一层完全覆盖底层颜色,所以我们刚才不需要设置底层的颜色,接下来就是设置开辟区域以外的颜色,红绿蓝全为255,所以颜色为白色,在下面为开辟ram区域的地址和ram里一张图片的像素大小,就是根据上面开辟区域来算;
设置lcd背光引脚;
由于H7系列又内存保护单元,所以我们要开启MPU,然后才能开辟一块RAM用来存储图像信息;
配置LTDC时钟,这个也需要根据你的lcd屏的要求来,我这个是50MHz;
最后就是生成代码;
生成代码后,找到MX_LTDC_Init();函数
加入代码,开启LCD背光。
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
结果
最后下载,烧录进板子,看到LCD屏底色为白色,我们选择的那块区域因为没有写任何图像代码,ram里的数据都是随机的,所以为雪花屏样式。
相应工程文件
链接:https://pan.baidu.com/s/1E8CEW6kSfi_rd_BWXM999w
提取码:0710