0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TouchGFX4.19免费使用框架新功能助于节省时间

星星科技指导员 来源:意法半导体 作者:意法半导体 2022-05-10 09:59 次阅读

TouchGFX 4.19现在可供下载。新版本包括静态图形功能和 TouchGFX Designer 中改进的文本管理系统,具有分组功能和处理排版设置的新方法。推动这个新版本的主旨是工作流程优化。多亏了这些新功能,创建静态图形只需单击几下,而不是一行一行的自定义代码。同样,新的文本管理界面将使类似资源的搜索和分组变得更加简单。无论是加快翻译操作还是协助为 UI 做出贡献的作者,新功能都应该有助于节省时间并使用户体验更有意义。

什么是 TouchGFX?

框架

TouchGFX 是 ST 的免费使用框架,有助于在 STM32 微控制器上创建图形用户界面。该引擎用 C++ 编写,利用了 ST 设备上的优化。TouchGFX 的工作假设是用户界面由用户导航的屏幕组成。因此,该框架是直观的并反映了用户体验。它也很广泛,因为它可以处理 2D 和 3D 对象、视频、动画、过渡等。此外,访问生成的代码的能力允许专家工程师优化他们的代码。TouchGFX文档通常是开发人员找到有关框架的 API 或可用开发工具之一的信息的第一个地方。

TouchGFX 设计师

TouchGFX Designer 通常是开发人员在启动他们的 UI 时使用的第一个工具。它是一种采用所见即所得方法的设计实用程序,设计师可以在其中创建用户将看到并与之交互的内容。开发人员可以从示例项目开始,例如时钟、仪表或动画图像。还有更多成熟的演示,如骰子动画、场景转换或游泳池监控系统。启动屏幕帮助选择演示应用程序、ST 开发板,然后配置所有内容。因此,运行示例代码和演示需要几分钟,这意味着更快地创建概念验证。TouchGFX Designer 中的 UI 元素通常采用通过实用程序界面添加和配置的小部件的形式。

TouchGFX Designer 是 TouchGFX 生态系统的一个组成部分。例如,只要用户选择3.0模板,就可以在Designer中启动项目,然后将其带到STM32CubeMX,设置Discovery板或MCU,让TouchGFX Generator(见下文)更新.IOC文件为立即应用新设置。同样,开发人员可以从 TouchGFX Generator 开始,移至 TouchGFX Designer,然后返回 STM32CubeMX 以更改显示分辨率。系统会自动更新 TouchGFX Designer,无需关闭应用程序。

TouchGFX 模拟

TouchGFX Simulator 可帮助开发人员在将图形用户界面运行到他们的 MCU 之前对其进行模拟。它的部分吸引力在于它提供了键盘快捷键来简化工作流程。例如,更容易拍摄各种屏幕截图并逐帧研究动画。同样,按 F2 会突出显示无效区域,即系统必须更新的帧部分。因此,开发人员可以检查他们的动画是否通过不必要地使资产无效来浪费 MCU 资源。

TouchGFX 发生器

能手表上协同工作

TouchGFX Generator 与STM32CubeMX一起生成 TouchGFX 抽象层 (AL) 的重要部分。我们支持几乎所有带显示屏的 STM32 探索套件,新插件适用于任何配备 Cortex-M0+、M4 或 M7 的 STM32 MCU。开发人员仍然需要用他们的用户代码来填补一些空白并进行优化,但是这个新插件让开始一个项目变得更加简单。实际上,Generator 创建了空函数来指导开发人员并促进电路板初始化。ST 开发板也有现有的默认设置,以加速开发并用作示例。

TouchGFX 4.19 有什么新功能?

静态图

随着可穿戴设备跟踪环境或物理数据,用户希望看到进展。图表可以跟踪心率、温度、步行步数等。TouchGFX 开发人员首先要求提供动态图形,因为它们很难实现,而且该功能自 TouchGFX 4.15 起就可用。现在,我们的团队正在发布静态图表以适应新的应用程序。事实上,不需要不断演变或只知道随时间发生轻微变化的数据更适合静态表示。新图表的工作方式略有不同。由于时间间隔是恒定的,因此开发人员只需在动态数据点上发送一个数据点。但是,对于静态的,程序员必须输入 X 轴和 Y 轴的信息。

高级文本管理

文本是大多数图形用户界面的重要组成部分,这解释了为什么设计师在它上面工作如此之多。他们对其进行定制、翻译和塑造。在 TouchGFX Designers 上创建的一些应用程序可以有数千个文本资源,每个资源都被翻译成多种语言。问题是使用文本可能很麻烦。因此,为了减少摩擦,TouchGFX 现在提供了开发人员可以根据其应用程序的部分或功能定义的组。新功能使在 TouchGFX Designer 中并排显示翻译文本变得更加简单。它还有助于捆绑相关信息以检查一致性和准确性。最后,小组可以更快地搜索和查找特定资源。

TouchGFX Designer 还包括Typographies在组内设置默认参数的选项。该部分允许用户选择字体规范、备用字符、通配符、对齐方式等。以前,开发人员必须覆盖每个文本资源的参数,这可能是很多工作。多亏了组,可以同时为许多资源设置参数,从而极大地优化开发。具有自定义排版的现有项目将看到其设置移至新部分。新的文本界面还显示一次性文本,并在必要时将其提升为资源。

TouchGFX 中已有哪些功能?

支持 X-NUCLEO-GFX01M2 和 X-NUCLEO-GFX02Z1

当工程师决定使用图形用户界面时,显示器通常会成为其物料清单中最昂贵的组件。一个没有触摸层的简单 2 英寸显示屏将显着改善用户体验,但它仍然比其他任何东西都更昂贵。因此,当以 5 美元或更少的 BoM 为目标时,采购价格合理的显示器是有问题的。因此,ST 推出了显示扩展板以帮助工程师找到具有成本效益的部件,并且我们为 TouchGFX Designer 中的硬件提供支持。用户选择显示器的配置,并可以开始在与其规格相匹配的界面上工作。

工程师可以选择的第一个扩展板是X-NUCLEO-GFX01M2。它使用支持 SPI 闪存的 SPI 2.2 英寸 QVGA (320 x 240) 显示器,对于带有外部闪存和两层 PCB 的典型嵌入式系统来说,这将适合大约 5 美元的 BOM。X-NUCLEO-GFX01M2 与各种 64 针 NUCLEO 板兼容。例如,工程师可以在NUCLEO-WB55RG上使用它来帮助使蓝牙应用更易于访问。

同样,X-NUCLEO-GFX02Z1是我们第一款支持并行接口、QSPI 闪存和 144 针 Nucleo 板的显示扩展板。该平台以功率更大的微控制器为目标,这解释了与提供更高带宽的接口的兼容性。开发人员可以将 X-NUCLEO-GFX02Z1 与首批 STM32U5 推出的NUCLEO-U575ZI-Q一起使用。因此,它使工程师能够利用新 MCU 更好的每瓦性能比来创建前几代 STM32 无法实现的用户界面。

在 UI 中嵌入视频

将视频带入更多 UI 的愿望是嵌入式系统显示器日益普及的自然结果。不幸的是,在带有微控制器的嵌入式系统上显示视频具有挑战性。没有带有默认媒体播放器和编解码器的操作系统。同样,编写显示 YouTube 视频的网页也是不可能的。开发人员必须完成所有繁重的工作,例如实现视频缓冲区、确定哪种格式最适合他们的微控制器,以及确定如何利用硬件加速(如果可用)。TouchGFX Designer 提供了一个视频小部件来解决这一挑战。因此,现在添加视频只需要三个简单的步骤。

可缓存容器

顾名思义,CacheableContainers 使用位图缓存来加速图形性能并启用更高的帧速率以实现更平滑的过渡。下面的演示在STM32F429I 探索套件上运行。如果没有 CacheableContainers,简单的全屏 (240 × 320) 幻灯片动画将以每秒 9 帧的速度运行。借助 TouchGFX 技术,系统达到每秒 60 帧。一些智能手表目前使用此功能来确保无缝的用户体验,尽管其外形尺寸固有的重大硬件限制以及需要更长的电池寿命。除了动画之外,CacheableContainers 还可以优化复杂的小部件,例如纹理映射器或静态背景前显示的小型动态元素。

如果没有 CacheableContainers,动画必须重绘每一帧,这会导致计算量大。CacheableContainer 通过将第一帧和最后一帧以系统保存在 RAM 中的位图形式存储在单独的容器中来绕过这个问题。系统不是渲染动画,而是使用 DMA 从内存中检索两个图像,并通过一个简单的 DynamicBitmap 方法将它们显示在不同的位置。MCU 不再生成每一帧,从而显着优化性能。开发者只需在 TouchGFX Designer 中勾选 Cacheable 框,选择要缓存的容器在内存中的位置,需要时调用即可。使用这种技术,渲染时间从 100 ms 下降到 5 ms。

部分帧缓冲

帧缓冲区是一个连续的内存空间,用于存储将出现在显示器上的每个像素的表示。例如,用于智能手表显示屏的标准 24 位 390 x 390 图像需要 3,650,400 位或 456.3 KB 的帧缓冲区(

(390\times390\times24)\div8

),这是STM32L4+ 上可用 SRAM 的 70% 以上,在智能手表和可穿戴设备上表现出色。如果应用程序需要多个帧缓冲区,这个数字可能会激增。超出容量限制,较大的帧缓冲区需要更长的时间来获取,因为更多的数据必须从内存传输到显示器,从而降低性能。

顾名思义,Partial Framebuffer 只存储了部分帧缓冲区,从而减少了 10 倍的内存占用。开发者可以根据屏幕的哪一部分来配置它的大小,然后再存储多个部分缓冲区。然后框架将选择合适的并将其发送到显示器。该技术最适用于短动画,例如时钟、加载条或随时间自行构建的图表。它还要求屏幕使用嵌入式控制器,因为它将直接从 MCU 的 RAM 接收部分帧缓冲区,从而绕过闪存以提高性能。该技术适用于并行/8080、DSI 和 SPI 显示器。

TouchGFX 还优化了部分帧缓冲区,为资源受限的微控制器带来 UI。传统上,最小的图形界面需要大约 200 KB 的帧缓冲区。然而,当像 STM32G071 这样的微控制器只有 36 KB 的 RAM 时,这可能是一个真正的问题。TouchGFX 通过将部分帧缓冲区优化为仅 6 KB 解决了这个问题。考虑到框架的应用程序数据,入门级 UI 只需要 16 KB 的 RAM 即可运行。TouchGFX 还使用智能部分屏幕更新。该功能补充了部分帧缓冲以优化屏幕上的更新顺序。该过程节省了资源,从而允许在同一时期进行更多更新。

L8 压缩格式

图形资产占用大量内存空间,降低其质量意味着降级用户界面。因此,L8 是一项基本功能,因为它可以将图像文件压缩高达 75% 而无需降级,这要归功于 STM32 微控制器中的 ChromART 加速器。只要资产使用最多 256 种颜色,这在配备 STM32 MCU 的小型嵌入式系统上很常见,开发人员只需在 TouchGFX Designer 中勾选一个框,就可以选择使用 L8 格式压缩资产。解压缩在计算上也很高效,因为它使用 ChromART 引擎在表格中查找颜色并在不损失质量的情况下渲染资产。

文本的 XML 文件

设计团队经常将文本存储在 Excel 文件中,以便与世界各地的各种翻译人员合作。然而,与使用 Git 等版本控制系统不同,编辑人员必须手动处理更改,并确保没有人无意中覆盖了其他人的工作,这可能很麻烦。为了解决这个问题,TouchGFX 将所有文本存储在一个 XML 文件中。该格式使合并操作和冲突解决变得更加简单。TouchGFX 还包括一个 XML 到 Excel 转换器,以适应现有的工作流程。开发人员可以导出到 Excel,然后将他们的 Excel 文件重新导入 TouchGFX 及其 XML 格式。

优化的项目文件

TouchGFX 还通过小型项目文件促进协作。它们的大小使它们更容易合并和共享。以前,项目文件以 JSON 格式存储所有参数。问题是这样的文件会变得非常大。因此,ST 决定仅通过存储自定义设置来优化项目文件。因此,文件中没有的任何内容都被视为使用默认值。因此,文件要小得多,从而使 Git 上的合并操作更加直接和快速。

一次性文本及其随机 ID

希望使用文本的开发人员必须在 TouchGFX Designer 的文本面板中创建资源,然后在 UI 中使用文本的 ID。但是,TouchGFX 也允许“一次性文本”,它不会作为典型的文本资源出现。开发人员在测试期间或文本不重要时使用它。它可以防止用不相关的文本填满数据库,并帮助更快地制作原型。实际上,与常规文本资源不同,一次性文本功能会自动生成 ID 并在从 UI 中删除资源时从数据库中删除。TouchGFX 还使用随机字符串生成器来创建 ID。因此,同一项目中的两个一次性文本 ID 几乎不可能相同。

动画和小部件

滑入过渡和动态图

开发人员面临的挑战是利用我们不断添加到 TouchGFX 的所有功能。因此,我们提供已使用上述功能的优化动画。例如,虽然传统的滑入式过渡需要整个屏幕刷新,但 TouchGFX 的擦除动画使用的资源要少得多。同样,动态图小部件可以更好地显示顺序数据,而对 RAM 和微控制器的影响较小。

时钟和纹理映射器

TouchGFX 还具有模仿应用程序的小部件,例如模拟和数字时钟。还有一个纹理映射器,这意味着开发人员可以通过简单的拖放来开始创建他们的映射程序。他们仍然需要输入他们的 C++ 代码,但这会使整个过程更加顺畅。Texture Mapper 也是在资源受限的 MCU 上进行 TouchGFX 优化的一个很好的例子。只要图形资产在 RAM 中而不是闪存中,它就可以帮助为对象设置动画,甚至可以在STM32G0上工作。

测量

仪表模板绘制针和弧以帮助用户监控值。开发人员还可以更改其背景、针的方向、值的范围等。下面的演示展示了程序员如何在他们的 IDE 和 TouchGFX Designer 之间切换以获得更流畅的工作流程。团队可以快速检查量表,即时调整它,并立即测试他们的代码。例如,视频展示了该handleTickEvent()功能如何控制仪表的行为。只需几行代码,开发人员就可以更改值的范围以及指标接收更新的频率等。这样的优化可以在不需要不断更新显示值的应用中节省大量资源。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6806

    浏览量

    147600
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16009

    浏览量

    343523
  • 显示器
    +关注

    关注

    21

    文章

    4735

    浏览量

    137816
收藏 人收藏

    评论

    相关推荐

    科技驱动未来,提升AI算力,GPU扩展正当时

    GPU可以大幅缩短AI算法的训练和推断时间,从而节省时间和成本
    的头像 发表于 04-16 18:22 621次阅读
    科技驱动未来,提升AI算力,GPU扩展正当时

    请问一下CMake和Make之间的区别有哪些?

    CMake和Make是构建软件,其工作涉及将源代码转换为可执行程序。CMake和Make是旨在实现构建过程自动化的工具,帮助开发者节省时间和精力。
    的头像 发表于 02-27 11:44 432次阅读

    走进维修现场:高分子复合材料在车载储罐防腐保护应用,有效延长储罐的使用寿命

    采用高分子复合材料现场修补技术即节省时间又可降低修复费用。高分子复合材料有着优异的粘着力和耐腐蚀性能,防止罐体进一步腐蚀。
    的头像 发表于 11-20 17:14 229次阅读
    走进维修现场:高分子复合材料在车载储罐防腐保护应用,有效延长储罐的使用寿命

    软硬件协同仿真原理及主要组成部分概述

    软硬件联合仿真在确保高效云解决方案的质量、降低风险、节省时间和成本方面发挥着关键作用。
    的头像 发表于 10-16 11:08 328次阅读
    软硬件协同仿真原理及主要组成部分概述

    Vivado那些事儿:节省编译时间系列文章

    虽然想必您知道,在综合或实现阶段,增量运行可以从参考文件中读取和复制信息,但仅在某些阶段中能节省时间,如果网表发生大量更改,其中引用的内容就会减少,编译时间也会受到相应影响。
    的头像 发表于 10-09 16:48 960次阅读
    Vivado那些事儿:<b class='flag-5'>节省</b>编译<b class='flag-5'>时间</b>系列文章

    KEIL中如何让程序在RAM中运行

    最近老是遇到使用 KEIL 时需要将部分或者全部程序放到 RAM 中运行的问题。故此花了不少时间搜索资料和几番尝试,现将其总结在本篇文章中,也是为大家以后的工作节省时间罢。本文中会介绍通过
    发表于 09-28 08:19

    TouchGFX4.2x新功能 助力STM32用户快速设计美观统一友好的人机交互产品

    电子发烧友网站提供《TouchGFX4.2x新功能 助力STM32用户快速设计美观统一友好的人机交互产品.pdf》资料免费下载
    发表于 07-29 11:01 0次下载
    <b class='flag-5'>TouchGFX</b>4.2x<b class='flag-5'>新功能</b> 助力STM32用户快速设计美观统一友好的人机交互产品

    使用雷达工具箱构建雷达信号处理流程

    具体内容包括:使用工具箱节省时间、可视化工具的使用、提高设计保真度和减少开发周期,以及在MATLAB中实现雷达目标检测的性能和精度等。
    发表于 07-04 09:49 442次阅读
    使用雷达工具箱构建雷达信号处理流程

    参考设计节省时间和精力

    为什么要重新发明轮子,尤其是在紧迫的项目期限总是迫在眉睫的情况下?借助可免费下载的参考设计,您可以快速了解您的应用程序,并将任何开发风险降至最低。我们的参考设计是完整的应用电路,包括至少一个Maxim IC,由我们的工程师设计、构建和广泛测试。
    的头像 发表于 06-29 16:25 389次阅读
    参考设计<b class='flag-5'>节省时间</b>和精力

    如何通过电源设计节省时间和空间

    从工业物联网 (IIoT) 到网络基础设施设备,下一代电子系统正在注入新的智能,在不断缩小的空间中需要更多功率,而不会影响热预算。因此,传统的解决方案并不合适。然而,考虑到上市时间的压力,设计人员没有大量的时间来设计电源,他们必须在有限的空间内努力散热,同时满足冲击、振动
    的头像 发表于 06-28 18:02 367次阅读
    如何通过电源设计<b class='flag-5'>节省时间</b>和空间

    用于虚幻引擎的 Omniverse Connector 助力内容创作者节省时间与精力

    通过提升 USD 的兼容性,并新增多项用于优化工作流的增强功能,以实现更快速且高效的自动化工作流。 Epic Games 开放、先进的实时 3D 创作工具—虚幻引擎,现新增更多功能以赋能内容创作者
    的头像 发表于 06-13 20:55 402次阅读
    用于虚幻引擎的 Omniverse Connector 助力内容创作者<b class='flag-5'>节省时间</b>与精力

    如何正确使用VH501TC振弦手持读数仪?

    正确使用仪器能有效的节省时间成本,提高工作效率,正如磨刀不如砍柴工。
    发表于 06-13 14:50

    电子产品中的薄膜电容介绍

    随着时代的发展,电子产品越来越普及了,不再是稀有物而是人人都能消费得起的商品,许多电子产品是生活小帮手,为人们提供便利节省时间
    的头像 发表于 06-08 17:43 574次阅读

    对i.MX8和8M系列的原理图检查表工具有什么帮助吗?

    对 i.MX 8 和 8M 系列的原理图检查表工具有什么帮助吗? 我认为这对初次设计的公司非常有用,因为其他制造商提供的,它可以节省时间,我认为我需要它,因为我可以专注于特定的主题,所以我想知道你是否可以支持我。
    发表于 05-16 07:47

    大数据分析的重要性

    大数据分析有助于找到问题的解决方案,如降低成本,节省时间并降低决策风险。通过结合数据分析和机器学习,企业可以通过以下方式获益匪浅:
    的头像 发表于 05-10 15:34 668次阅读