跳转到主要内容

Additional-features

如果项目配置中有任何附加功能,则会显示“附加功能”组。

TouchGFX Generator附加功能设置

外部数据读取器

对于RGB565帧缓存像素格式,TouchGFX支持数据读取器接口,该接口使开发人员能够直接从非存储映射串行Flash读取数据,而无需进行缓存,使用缓存则需要在存储器中增加额外缓冲区。 关于如何实现DataReader,从非存储映射闪存芯片中检索应用程序资源的示例,请参见SerialFlash文章。

数据读取器选项通常用于低成本解决方案(如STM32G0),这些方案没有足够的内存用于额外的缓冲区。

开发人员可进行以下配置:

  • 外部数据读取器:使能或禁用此功能。 如果使能,TouchGFX将直接通过生成的接口检索应用资源。 如果禁用,则开发人员需要将图片资源缓存到内存缓冲区中。
  • 外部数据读取器:内存基址:指定外部数据读取器内存的起始地址。
  • 外部数据读取器:内存基址:指定外部数据读取器内存的大小。
  • 外部数据读取器:行缓冲区大小:创建两个缓冲区,以便将图像或文本混合到帧缓冲中。 默认值为一个屏幕宽度4字节*,以支持ARGB8888像素格式的全尺寸图像。
  • 外部数据读取器:最小DMA传输大小:设置启动DMA传输所需的最小字节。 如果请求传输的字节更少,将不使用DMA。

在使能外部数据读取器的情况下,通过TouchGFX Generator生成代码后,将创建以下附加文件,以支持直接从非存储映射闪存中检索资源。

  • TouchGFX/target/generated/TouchGFXGeneratedDataReader.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedDataReader.hpp
  • TouchGFX/target/TouchGFXDataReader.cpp
  • TouchGFX/target/TouchGFXDataReader.hpp

像往常一样,对于TouchGFX Generator生成的AL架构,TouchGFXGeneratedDataReader为只读,用户修改应在TouchGFXDataReader类中进行。 TouchGFXGeneratedDataReader的类型为touchgfx::FlashDataReader

将对以下文件进行修改,以将TouchGFX HAL配置为使用DataReader

  • TouchGFX/target/generated/TouchGFXConfiguration.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedHAL.hpp
Note
仅当禁用DMA2D和LTDC时,DataReader附加功能才可用。

Vector Rendering(矢量渲染)

To be able to configure Vector Rendering in TouchGFX Generator, the framebuffer pixel format must be RGB565, RGB888, or ARGB8888. The developer has three options when it comes to Vector Rendering capabilities:

  • 禁用——禁用应用程序的Vector Rendering支持。
  • Software - Enables software Vector Rendering support for the application.
  • Hardware - Enables hardware Vector Rendering support for the application.

When Software is chosen vector rendering is performed by the CPU. For MCUs with GPU2D (Neochrom) available, the Hardware option is available, which will improve the performance by doing the the vector operations in the GPU2D.

Caution
如果要在应用程序中使用TouchGFX Designer的SVGImage控件,请检查是否已在TouchGFX Generator中启用Vector Rendering。 否则,编译过程中将出现“touchgfx::VectorRenderer::getInstance()未定义”错误。
Tip
如果您的设备可用GPU2D(NeoChrom)(例如:STM32U599),则启用以获得最佳矢量渲染性能。
Further reading
有关如何在TouchGFX中渲染SVG的详细信息,请参阅SVG文章。

Vector Font Rendering

To be able to enable Vector Font Rendering in TouchGFX Generator, Vector Rendering must be enabled (either software or hardware). The developer has two options when it comes to Vector Font Rendering capabilities:

  • Disabled - Disables Vector Font Rendering support for the application.
  • Enabled - Enables Vector Font Rendering support for the application.

The performance of the drawing of Vector Fonts is effected by the option for the Vector Rendering parameter (i.e. hardware being the fastest).

8位LTDC颜色查询表

当LTDC被配置为读取L8格式的帧缓存和ABRG2222ARGB222BGRA2222、或RGBA2222中的TouchGFX渲染, TouchGFX Generator将提供一个CLUT(在TouchGFXHAL::initialize()执行期间加载到LTDC)。 有关LTDC和CLUT的用法,详见STM32 MCU参考手册。