【STM32H7S78-DK测评】图形显示小试牛刀——LTDC外设实验
在小分辨率的TFT-LCD显示屏中,我们一般通过一颗LCD驱动芯片来驱动LCD显示,如ili93xx系列,或者单色的OLED驱动芯片SSD1306.对于这些驱动芯片,由于驱动芯片内部集成了GRAM空间,所以我们仅需要按照GRAM的规则来填充对应的显示颜色数据即可,通常是SPI外设接口,I2C接口或者并口接口等。不过,它们都有一个不足,即分辨率低,成本高——毕竟多了一个芯片嘛!今天给大家带来的LTDC外设则可以完美解决上述忧虑。
LTDC是啥
LTDC,全称是LCD-TFT Display Controller,中文称为LCD显示控制器。其提供了RGB信号、控制同步信号等来直接控制外部LCD显示屏。由于MCU直接驱动TFT-LCD,所以有了LTDC外设后,LCD则不需要再额外连接一颗驱动芯片。当然,显示使用的GRAM也只能由MCU提供,或内部的SRAM,或片外的PSRAM。在本次的DIY中,STM32H7RS78-DK中,我们使用片外的PSRAM。
LTDC外设的硬件连接
LTDC外设的硬件连接其实和其它的外设一样,同名的信号连接在一起。这里提到一个名词“显示色彩格式”。典型区分为RGB888和RGB565两种格式,其实只是连接信号线的差异,对于RGB565只是把低位的 信号线给连接到了GND,从而省出来8根GPIO。
LTDC时序参数
阅读了一下,还挺多的。借助STM32CubeMX,我们也是需要阅读LCD屏的datasheet即可。STM32H7RS侧的参数配置会自动生成完毕。这里限于篇幅,不多说了啊!
LTDC的层和窗口
LTDC有三个层:背景层(BG)、图层1(pLayerCfg)、图层2(pLayerCfg1)。
- 背景层是在初始化时输入的RGB三个值,是常量值;
- 图层就是我们需要显示的内容;
- 混合,上述三个图层从下往上混合。通过Alpha透明通道来达到不同的混合效果;
LTDC实验:背景显示
刚刚我们从理论知识了解到,背景层的显示是初始化完成的。因此,我们用它来首先判断我们配置的LTDC外设的参数是否配置正确。
我们把背景颜色设置为21ic的蓝色。RGB(29,97,168),然后,我们看看效果是否符合预期:
接下来,我们再来尝试一下使用LTDC来显示图片。
其实也没有那么难吧!欢迎大家周末来到河北游玩!
今天关于LTDC外设的实验就到这里了!这是一个非常实用的GUI基础功能。后续,我们将体验使用它来显示各种图片。关注我,分享的都是干货。
|