Display
显示组包含与显示屏有关的配置,如接口、尺寸和缓冲策略。
接口与尺寸
如今,STM32微控制器可使用多种显示接口,如:
- 并行RGB(LTDC)
- MIPI DSI
- FMC
- SPI
如果MCU带有连接到LTDC或FMC的显示屏,TouchGFX Generator可生成代码,以将帧缓冲器传输到连接的显示屏。 对于DSI和SPI接口,驱动程序必须由开发人员自己实现。
Further reading
帧缓冲像素格式
TouchGFX Generator目前支持以下帧缓冲像素格式。 当使用“Custom”显示接口时,所有选项均可用,否则选项被限制为显示屏控制器设置(例如,配置LTDC Framebuffer格式为“RGB565”时,会将TouchGFX Generator中的配置选项限制为“RGB565”)。
- BW (1bpp)
- Grey2 (2bpp)
- Grey4 (4bpp)
- ABRG2222 (8bpp)
- ARGB2222 (8bpp)
- BGRA2222 (8bpp)
- RGBA2222 (8bpp)
- RGB565 (16bpp)
- RGB888 (24bpp)
- ARGB8888 (32bpp)
- XRGB8888 (32bpp)
Note
Framebuffer Stride
For some display interfaces (e.g. MIPI-DSI) having a larger framebuffer stride than the actual width of the display can increase the data transfer rate to the display if the larger stride is better aligned with the data packet size. Use of a larger framebuffer stride can be configured as:
- No - The framebuffer stride and display width are equal in size.
- Yes - Allows the user to specify a framebuffer stride length.
缓冲策略&位置
可通过TouchGFX Generator配置以下帧缓冲策略:
- 单帧缓冲 - 仅使用一个应用帧缓冲区。 可能会使性能受限,但占用内存更少。 可与“缓冲位置”配置一起使用,将其放置在内部RAM中。 为进一步优化,用户可以定义一个函数,该函数返回显示屏控制器正在处理的当前行。 该方法用于框架,以允许更新该帧期间已传输到显示屏的内存。
- 双缓冲 - 使用两个帧缓冲区。 通常以牺牲内存为代价来获得更好的性能。
- 部分缓冲- 将一个或多个用户定义的内存块作为帧缓冲区。 该策略适用于低成本解决方案,不依赖外部RAM,且显示屏的全帧缓冲可能超出可用内存。
对于单缓冲区和双缓冲区,用户可通过“缓冲器位置”来配置其位置,该配置提供以下选项:
- 按分配- 允许链接器根据链接器脚本来放置帧缓冲存储器。 默认位于内部RAM中。
- 按地址- 允许用户定义一个(单) 或两个(双) 帧缓冲地址。
部分帧缓冲策略允许用户定义以下参数:
- 块数(始终放置在内部RAM中)
- 块大小(字节)
要了解有关部分缓冲战略的一些核心概念,请阅读使用部分帧缓冲区降低内存要求的专用文章。 本文从概念上说明了如何实现部分帧缓冲,并且本文中显示的代码与TouchGFX Generator生成的代码略有不同。 有关为这些策略生成的具体示例代码,请参见帧缓冲策略。