TouchGFX 4.21随TouchGFX Stock一起发布,这是有史以来最大的图形资源库,由用于微控制器的GUI设计工具提供。新版本旨在为开发人员带来便利。在其众多错误修复和生活质量改进中,它确保用户可以更轻松地创建 UI。有了TouchGFX Stock,不再需要寻找资产和支付昂贵的许可费。想要创建更充实的原型的团队或那些负担不起设计师的团队现在有一个解决方案,随着时间的推移会不断增长。同样,TouchGFX现在支持SVG文件和NeoChrom GPU加速器,以帮助可扩展性和动画。
什么是TouchGFX?
A. 框架
TouchGFX是意法半导体的免费使用框架,有助于在STM32微控制器上创建图形用户界面。该引擎以C++编写,利用了意法半导体器件上的优化。TouchGFX的工作原理是,界面由用户导航的屏幕组成。因此,该框架是直观的,反映了一个人的经验。它也很广泛,因为它处理 2D 和 3D 对象、视频、动画、过渡等。此外,访问生成的代码的能力允许专家工程师对其进行优化。为了帮助他们完成这个过程,TouchGFX文档提供了有关框架API或可用开发工具的信息。
TouchGFX设计师
TouchGFX Designer通常是开发人员在启动UI时使用的第一个工具。这是一个具有所见即所得方法的实用程序,设计人员可以在其中创建用户将看到并与之交互的内容。开发人员可以从示例项目开始,例如时钟、仪表或动画图像。还有更多成熟的演示,如骰子动画、场景过渡或池监控系统。启动屏幕有助于选择演示应用、意法半导体开发板,然后配置所有内容。因此,运行示例代码和演示只需几分钟,这意味着可以更快地创建概念验证。TouchGFX Designer中的UI元素通常采用通过实用程序界面添加和配置的小部件的形式。
TouchGFX Designer是TouchGFX生态系统不可或缺的一部分。例如,只要用户选择3.0模板,就可以在Designer中启动项目,然后将其带到STM32CubeMX,设置探索板或MCU,并让TouchGFX生成器(见下文)更新。IOC 文件以立即应用新设置。同样,开发人员可以从TouchGFX生成器开始,转到TouchGFX Designer,然后返回STM32CubeMX来更改显示分辨率。系统将自动更新TouchGFX Designer,而无需关闭应用程序。
触摸GFX模拟器
TouchGFX模拟器可帮助开发人员在将图形用户界面运行到MCU之前预览其图形用户界面。它的部分吸引力在于它提供了键盘快捷键来简化工作流程。例如,更容易拍摄各种屏幕截图并逐帧研究动画。同样,按 F2 会突出显示无效区域,即系统必须更新的帧部分。因此,开发人员可以通过不必要地使资产失效来检查他们的动画是否浪费了 MCU 资源。
触摸GFX发生器
TouchGFX生成器与STM32CubeMX配合使用,生成TouchGFX抽象层的重要部分。我们支持几乎所有带显示屏的STM32探索套件,新插件可与任何配备Cortex-M32+、M0或M4的STM7 MCU配合使用。开发人员仍然需要用他们的用户代码填充一些空白并执行优化,但这个新插件使启动项目变得更加简单。事实上,Generator创建了空函数来指导开发人员并促进电路板初始化。意法半导体开发板也有现有的默认设置,以加快开发速度并作为示例。
TouchGFX 4.21 有什么新功能?
触摸GFX股票
TouchGFX Stock 是最大的免费用户界面图形资产库,由面向微控制器的框架提供。它包括图标、GUI 元素、主题、图像等。由于这些图标来自谷歌的免费使用库,而意法半导体拥有所有其他资源的权利,因此TouchGFX Stock拥有慷慨的许可,允许团队免费使用这些资源,即使是商业项目,只要它们在STM32设备上运行。用户可以抓取资产以针对其界面调整其大小或对其进行编辑以满足其特定需求。该许可证甚至涵盖将这些资产与另一个图形框架一起使用,只要该程序在意法半导体微控制器上运行即可。
最近,许多初创公司一直在他们的设计中重复使用TouchGFX占位符或示例资产。新趋势源于小型团队的崛起,这些团队没有资源投资于设计师。因此,当他们采用TouchGFX时,一些开发人员发现占位符很优雅,只需将它们添加到最终界面中即可。 这就是为什么我们决定投资TouchGFX股票,并成为拥有最广泛的免费图形资源库的MCU供应商。它还解释了我们的许可方法。多年来,我们一直在努力使MCU上的GUI更易于访问。这是这座大厦之上的另一块石头。意法半导体还致力于随着时间的推移,通过新的主题、图像等来发展这个库。
与此同时,TouchGFX Stock 带有 UI 元素,如条形图、弹出窗口、时钟、仪表等等。我们还提供某些资产的浅色和深色版本。最终,TouchGFX 4.21是设计方面的一课。工程师不必担心调色板不匹配或依赖过时的设计理念。我们提供的设置使 UI 保持凝聚力和现代性。我们还提供各种尺寸以适应大多数显示器,因此许多人甚至不需要自己调整大小。TouchGFX Stock在发布时有五个主题。但是,由于 MCU 上 GUI 的性质,切换主题不是自动的。由于并非所有资产都存在一对一关系,因此用户必须手动替换它们。
支持可缩放矢量图形 (SVG)
TouchGFX开始支持SVG。传统上,框架存储光栅图像,例如 PNG 文件,因为它们易于访问和显示。相反,SVG 文件不包含渲染,但包含有关如何绘制它们的说明。它使它们具有高度可扩展性,但要求更高。虽然这在笔记本电脑或台式机上不是问题,但在低功耗微控制器上却是完全不同的情况。问题在于,设计人员越来越多地创建动画界面,并希望将一个UI扩展到不同的显示尺寸。因此,团队希望使用 SVG 文件来节省资源,因为一个文件可以通过多种不同的方式绘制。
为了应对这一日益严峻的挑战,意法半导体在某些STM2U5上采用了新的NeoChrom 32.5D加速器。硬件优化绘图动画卸载了一些与 SVG 文件相关的计算,从而解决了性能问题。该 IP 还依赖于更快的内存接口,从而加快了获取操作。因此,将文件存储在外部存储器中时,损失较小。最终,该公告具有高度的象征意义,因为当我们在 2022 年 《》 月讨论 NeoChrom 时,SVG 不在功能列表中。然而,今天的发布表明该IP具有很大的潜力,意法半导体将继续支持其功能产生的新功能。
TouchGFX已经有哪些功能?
支持 X-NUCLEO-GFX01M2 和 X-NUCLEO-GFX02Z1
当工程师决定使用图形用户界面时,显示器通常会成为其物料清单中最昂贵的组件。没有触摸层的简单2英寸显示屏将显着改善用户体验,但它仍然比其他任何东西都贵。因此,当目标是五美元或更少的BoM时,采购负担得起的显示器是有问题的。因此,意法半导体正在出货显示器扩展板,以帮助工程师找到具有成本效益的器件,并且我们为TouchGFX Designer中的硬件提供支持。用户可以选择显示器的配置,并可以开始在符合其规格的界面上工作。
工程师可以选择的第一个扩展板是X-NUCLEO-GFX01M2。它使用支持SPI闪存的SPI 2.2英寸QVGA(320 x 240)显示器,对于带有外部闪存和两层PCB的典型嵌入式系统来说,这将适合大约五美元的BOM。X-NUCLEO-GFX01M2 与各种 64 引脚 NUCLEO 板兼容。例如,工程师可以在NUCLEO-WB55RG上使用它,以帮助使蓝牙应用更易于访问。
同样,X-NUCLEO-GFX02Z1是我们第一款支持并行接口、QSPI闪存和144引脚Nucleo板的显示扩展板。该平台面向功率更大的微控制器,这解释了与提供更高带宽的接口的兼容性。开发人员可以将X-NUCLEO-GFX02Z1与第一批STM575U32一起推出的NUCLEO-U5ZI-Q一起使用。因此,它使工程师能够利用新型MCU更好的每瓦性能比来创建前几代STM32无法实现的用户界面。
在 UI 中嵌入视频
将视频带到更多UI的愿望是嵌入式系统上显示器日益普及的自然结果。不幸的是,在带有微控制器的嵌入式系统上显示视频具有挑战性。没有具有默认媒体播放器和编解码器的操作系统。同样,编写显示YouTube视频的网页也是不可能的。开发人员必须完成所有繁重的工作,例如实现视频缓冲区,确定哪种格式最适合其微控制器,并确定如何利用硬件加速(如果可用)。TouchGFX Designer提供了一个视频小部件来解决这一挑战。因此,现在添加视频只需要三个简单的步骤。
矢量优化
微控制器上的大多数静态接口都使用位图,因为它们需要很少的计算吞吐量。相比之下,矢量图像不太常见,因为它们需要更多的计算能力。挑战在于矢量对于动画至关重要。因此,开发人员可能会选择使用更多资源来获得更高的每秒帧数,或者使用更少的功率并且动画不太流畅。为了解决这个问题,TouchGFX在处理矢量图形时进行了重大优化,在某些情况下效率提高了70%。因此,开发人员可以在较小的MCU上提供更流畅的动画或使用更多的矢量元素。但是,开发人员将在大型动画上看到最大的性能提升。
新的优化利用Chrom-ART在某些操作(如颜色填充)期间卸载微控制器。ST还更新了框架计算形状边缘的方式。此外,由于更新与框架对矢量图形的处理有关,因此用户会自动从中受益。因此,开发人员将立即看到性能提升,并可以相应地进行规划。有些人可能会选择降低其应用程序的内存要求或决定向其界面添加新动画。团队可能还必须查看其 UI,因为某些元素的运行速度可能比预期快。
导出自定义容器
在最简单的形式中,TouchGFX设计器依赖于小部件,即在屏幕上绘制的特征的表示形式。该软件带有许多预定义的小部件,例如仪表,时钟或图形,开发人员还可以设计自定义小部件。为了使小部件更直接,设计人员可以将它们分组到容器中。容器通常是接口的构建块。它们使程序员能够在多个屏幕上重用一组小部件,而无需每次都重新配置它们。此外,修改容器会影响使用它的每个屏幕,从而大大简化开发。TouchGFX还具有预定义的容器,以加速最常见的设计操作,开发人员可以创建自定义容器。
自定义容器非常受欢迎,因为它们使开发人员能够调整其界面并充实精确的愿景。然而,任何设计工具背后的固有挑战是,花在一个项目上的工作很少可以导出到另一个UI。实际上,自定义容器包括代码、图形资产、文本、依赖项等,将其与现有项目相关联。从版本 4.20 开始,TouchGFX Designer 通过提供导出功能解决了这个问题,该功能可以创建一个可在其他项目上重用的捆绑包(.tpkg 文件)。该实用程序会将所有资产(包括字体)添加到捆绑包中,并且 XML 文件会列出其内容。因此,开发人员可以检查该文件并对其进行修改以选择要导出的内容。
导入自定义容器
若要导入自定义容器,用户请选择“编辑”-》“导入”-》“自定义容器”。TouchGFX包括一个新的导入实用程序,可指导用户完成整个过程。例如,软件检测自定义容器定义的语言,并将它们与新项目中可用的语言进行匹配或忽略它们。如果通用名称之间存在冲突,或者问题可能导致新界面内部出现问题,系统还将停止导入过程。TouchGFX Designer强制用户修复原始自定义容器上的问题,而不是在导入过程中创建解决方法。由于该功能的目的是保留跨产品界面的外观,因此强制在原始项目中进行更改可确保跨 UI 的一致性。
可缓存容器
顾名思义,它使用位图缓存来加速图形性能并实现更高的帧速率以实现更平滑的过渡。下面的演示在STM32F429I探索套件上运行。如果没有 CacheableContainers,简单的全屏(240 × 320)幻灯片动画将以每秒 60 帧的速度运行。借助TouchGFX技术,系统达到每秒《》帧。一些智能手表目前使用此功能来确保无缝的用户体验,尽管其外形固有的重大硬件限制以及对更长电池寿命的需求。除了动画之外,CacheableContainers 还可以优化复杂的小部件,例如纹理映射器或显示在静态背景前面的小动态元素。
如果没有 CacheableContainers,动画必须重绘每一帧,这可能会产生计算成本。CacheableContainer 通过将第一帧和最后一帧以系统保存在 RAM 中的位图的形式存储在单独的容器中来绕过此问题。系统不使用渲染动画,而是使用 DMA 从内存中检索两个图像,并通过简单的 DynamicBitmap 方法在不同位置显示它们。MCU不再生成每一帧,从而显著优化了性能。开发者只需要勾选 TouchGFX Designer 中的 Cacheable 框,选择要缓存的容器在内存中的位置,并在需要时调用它们。使用此技术,渲染时间从 100 毫秒缩短到 5 毫秒。
部分帧缓冲
帧缓冲区是一个连续的内存空间,用于存储将显示在显示器上的每个像素的表示形式。例如,智能手表显示器的标准 24 位 390 x 390 图像需要 3,650,400 位或 456.3 KB ,这是STM70L32+上SRAM的4%以上,在智能手表和可穿戴设备上表现出色。如果应用程序需要多个帧缓冲区,则此数字可能会爆炸。除了容量限制之外,大型帧缓冲区需要更长的时间来获取,因为必须从内存传输到显示器,从而降低性能。
顾名思义,部分帧缓冲仅存储帧缓冲区的一部分,从而将其内存占用量减少了 10。开发人员可以根据将要更改的屏幕部分配置其大小,然后存储多个部分缓冲区。然后,框架将选择合适的框架并将其发送到显示器。该技术最适合短动画,如时钟、加载条或随时间推移自行构建的图形。它还要求屏幕使用嵌入式控制器,因为它将直接从MCU的RAM接收部分帧缓冲区,从而绕过闪存以增加性能。该技术适用于并行/8080、DSI 和 SPI 显示器。
TouchGFX还优化了部分帧缓冲区,将UI引入资源受限的微控制器。传统上,最小的图形界面需要大约 200 KB 的帧缓冲区。但是,当像STM32G071这样的微控制器只有36 KB的RAM时,这可能是一个真正的问题。TouchGFX通过将部分帧缓冲区优化为仅16KB来解决此问题。考虑到框架的应用程序数据,入门级 UI 只需要 《》 KB 的 RAM 即可运行。TouchGFX还使用智能部分屏幕更新。该功能补充了部分帧缓冲,以优化屏幕上的更新顺序。该过程可节省资源,从而允许在同一时间段内进行更多更新。
L8 压缩格式
图形资产会占用大量内存空间,降低其质量意味着降级用户界面。因此,L8是一个必不可少的功能,因为它可以将图像文件压缩高达75%,而不会降级,这要归功于STM32微控制器中的Chrom-ART加速器。只要资产最多使用256种颜色(在配备STM32 MCU的小型嵌入式系统上很常见),开发人员只需在TouchGFX Designer中勾选一个框,就可以选择使用L8格式压缩资产。解压缩在计算上也很高效,因为它使用 Chrom-ART 引擎在表格中查找颜色并在不损失质量的情况下渲染资产。
文本的 XML 文件
设计团队经常将文本存储在 Excel 文件中,以便与世界各地的各种翻译人员合作。但是,编辑者必须手动处理更改,并确保没有人无意中覆盖其他人的工作,而不是使用版本控制系统,例如 Git,这可能很麻烦。为了解决这个问题,TouchGFX将所有文本存储在XML文件中。该格式使合并操作和冲突解决变得更加简单。TouchGFX还包括一个XML到Excel转换器,以适应现有的工作流程。开发人员可以导出到Excel,然后将他们的Excel文件导入回TouchGFX及其XML格式。
优化的项目文件
TouchGFX还通过小型项目文件促进了协作。它们的大小使它们更容易合并和潜在共享。以前,项目文件以 JSON 格式存储所有参数。问题是这样的文件可能会变得非常大。因此,意法半导体决定通过仅存储自定义设置来优化项目文件。因此,文件中不存在的任何内容都将被视为使用默认值。因此,该文件要小得多,使 Git 上的合并操作更加简单和快速。
一次性文本及其随机 ID
希望使用文本的开发者必须在TouchGFX设计器的文本面板中创建一个资源,然后在UI中使用文本的ID。但是,TouchGFX还允许“一次性文本”,它不显示为典型的文本资源。开发人员在测试期间或文本不重要时使用它。它可以防止用不相关的文本填充数据库,并有助于更快地进行原型设计。实际上,与常规文本资源不同,一次性文本功能会自动生成一个 ID,并在从 UI 中删除资源时从数据库中删除资源。TouchGFX还使用随机字符串生成器来创建ID。因此,同一项目中的两个一次性文本 ID 几乎不可能相同。
动画和小部件
滑入式过渡和动态图形
开发人员面临的挑战是利用我们不断添加到TouchGFX的所有功能。因此,我们提供已经使用上述功能的优化动画。例如,传统的滑入式过渡需要整个屏幕刷新,而TouchGFX的划像动画使用的资源要少得多。同样,动态图形小部件可以更好地显示顺序数据,对RAM和微控制器的影响更小。
静态图形
随着可穿戴设备跟踪环境或物理数据,用户希望看到进展。图表可以跟踪心率、温度、步行步数等。TouchGFX开发人员首先要求提供动态图表,因为它们可能难以实现,并且该功能自TouchGFX 4.15以来一直可用。现在,我们的团队正在发布静态图形以适应新的应用程序。事实上,不需要不断发展或只知道随时间略有变化的数据更适合静态表示。新图表的工作方式略有不同。开发人员只需要在动态数据点上发送一个数据点,因为时间间隔是恒定的。但是,在静态轴上,程序员必须输入 X 轴和 Y 轴的信息。
时钟和纹理映射器
TouchGFX还具有模仿应用程序的小部件,例如模拟和数字时钟。还有一个纹理映射器,这意味着开发人员可以通过简单的拖放开始创建他们的映射程序。他们仍然需要输入他们的C++代码,但这将使整个过程更加顺畅。Texture Mapper也是TouchGFX在资源受限的MCU上进行优化的一个很好的例子。它可以帮助对对象进行动画处理,甚至可以在STM32G0上运行,只要图形资源位于RAM中而不是闪存中。
轨距
仪表模板绘制针和弧线以帮助用户监视值。开发人员还可以更改其背景、指针的方向、值范围等。下面的演示展示了程序员如何在IDE和TouchGFX设计器之间切换,以获得更流畅的工作流程。团队可以快速检查仪表,即时调整它,并立即测试他们的代码。例如,视频显示了该功能如何控制仪表的行为。只需很少的代码行,开发人员就可以更改值的范围以及指标接收更新的频率等。这样的优化可以在不需要不断更新显示的值的应用程序中节省大量资源。
高级文本管理
文本是大多数图形用户界面的重要组成部分,这解释了为什么设计师在文本上工作如此之多。他们定制它,翻译它,塑造它。在TouchGFX设计器上创建的某些应用程序可以拥有数千个文本资源,每个资源都可以翻译成多种语言。问题是处理文本可能很麻烦。因此,为了减少摩擦,TouchGFX现在提供了开发人员可以根据其应用程序的部分或功能定义的组。新功能使在TouchGFX设计器中并排显示翻译文本变得更加简单。它还有助于捆绑相关信息以检查一致性和准确性。最后,组可以更快地搜索和查找特定资源。
TouchGFX Designer还包括一个选项,用于在组中设置默认参数。该部分允许用户选择字体规格、回退字符、通配符、对齐方式等。以前,开发人员必须覆盖每个文本资源的参数,这可能是很多工作。多亏了组,可以同时为许多资源设置参数,从而大大优化开发。具有自定义版式的现有项目将看到其设置移动到新部分。新的文本界面还显示一次性文本,并在必要时将其提升为资源。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !