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

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

3天内不再提示

TouchGFX升级至V4.12,每秒帧数从9帧升级至60帧 更新TouchGFX Suite

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-03 15:07 次阅读

TouchGFX属于Draupner Graphics公司的GUI产品,在去年(2018年7月),TouchGFX被ST收购,在STM32上可以免费使用TouchGFX。

之前也写过关于GUI的文章:盘点嵌入式那些常见的GUI:emWin、TouchGFX、MiniGUI、Qt等。

一、TouchGFXSuite(开发套件)

TouchGFX是STM32生态系统中的免费工具。它由两部分组成:用于设计和配置丰富的用户界面的TouchGFX Designer PC工具,以及在终端设备上运行以确保较高UI性能的TouchGFX Engine软件。

二、TouchGFX 4.12

TouchGFX 4.12带来了可缓存容器,部分帧缓冲区以及L8图形压缩格式等内容,这些都将改善更多STM32微控制器的性能。

这也是ST自2018年收购该解决方案以来的首次重大升级,并且已成为STM32生态系统不可或缺的一部分。

三、CacheableContainers缓存容器

CacheableContainer是一项技术,顾名思义,它使用位图缓存来显着加速图形性能,并通过大规模优化性能来实现更高的帧速率以实现更平滑的过渡。

如果没有CacheableContainer技术,则简单的全屏(240×320)幻灯片动画将以每秒9帧的速度运行。启用了新的TouchGFX技术后,系统可以达到每秒60帧的速度。

尽管某些智能手表因其外形尺寸固有的重大硬件限制以及需要更长的电池寿命,但目前仍使用此功能来确保更无缝的用户体验。为复杂的小部件设置动画时,它可以使性能最大化。

在传统系统中,动画要求系统重新绘制每一帧,这可能会使计算变得昂贵。在屏幕1和屏幕2之间的动画中,大约需要20帧,重新绘制每个帧大约需要100毫秒。

原理:

CacheableContainer通过以系统保留在RAM中的位图的形式将第一帧和最后一帧存储在单独的容器中来绕过此问题。该系统无需计算动画,而是使用DMA从内存中检索两个图像,并通过简单的DynamicBitmap方法将其显示在不同的位置。

MCU不再需要渲染每个帧,从而显着优化了性能。开发人员只需勾选Cacheable在“ TouchGFX设计器”框中,选择要缓存的容器在内存中的位置,并在需要时调用它们。使用此技术,渲染时间从100毫秒降至5毫秒。

四、部分帧缓冲部分帧缓冲是ST为客户开发的另一项技术,有巨大的成果。帧缓冲区是连续的存储空间,用于存储将出现在显示屏上的每个像素的表示形式。

例如,用于智能手表显示屏的标准24位390 x 390图像需要3,650,400位或440 KB的帧缓冲器。 公式:

原理:

顾名思义,部分帧缓冲区仅存储一部分帧缓冲区,从而将其在内存中的大小平均减少10。开发人员可以根据实际更改的屏幕部分配置其大小,然后存储多个部分帧缓冲区。

TouchGFX引擎将选择合适的引擎并将其发送到显示器。因此,系统不必获取整个缓冲区,而是使用更小的文件,从而提高了整体性能。

该技术最适合短动画,例如时钟或随时间推移而建立的图形。它还要求屏幕使用嵌入式控制器,因为它将直接从MCU的RAM接收部分帧缓冲区,从而绕过Flash以进一步提高性能。该技术可用于Parallel / 8080,DSI和SPI显示器。

五、L8压缩格式和TouchGFX开发工具

图形资源在内存中占用大量空间,直到现在开发人员唯一能做的就是减少细节以缩小文件大小。不幸的是,这也意味着要提供不太友好的图形用户界面。

L8的独特之处在于,它可以利用STM32微控制器中存在的ChromART加速器来显着压缩图像文件。只要图片资源最多使用256种颜色,开发人员就可以选择通过使用L8格式压缩图形资源,只需在TouchGFX开发工具中打勾即可。

该系统生成的图像缩小了多达75%,并且解压缩阶段在计算上非常有效,因为它使用ChromART引擎查找表格中的各种颜色并对资产进行解压缩而不会降低质量。

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

    关注

    53

    文章

    1917

    浏览量

    71297
  • 单帧数据
    +关注

    关注

    0

    文章

    2

    浏览量

    6173
  • TouchGFX
    +关注

    关注

    1

    文章

    42

    浏览量

    13274
收藏 人收藏

    评论

    相关推荐

    TouchGFX助力STM32打造高效GUI显示方案

    TouchGFX 是一款针对 STM32 微控制器优化的先进免费图形软件框架。 TouchGFX 利用 STM32 图形功能和架构,通过创建令人惊叹的类似智能手机的图形用户界面,加速了物联网 HMI 革命。
    的头像 发表于 01-13 15:16 116次阅读
    <b class='flag-5'>TouchGFX</b>助力STM32打造高效GUI显示方案

    tougfx如何限制刷新

    touchgfx中不是有个model类中tick一直循环被调用,怎么让它让他调用的速度慢一些,我感觉是通过改变刷新的频率解决,有别的解决办法吗?
    发表于 12-06 22:04

    can标准和扩展能否共存

    CAN(Controller Area Network)是一种用于汽车和工业自动化领域的现场总线通信协议。CAN协议具有多种格式,包括标准和扩展。在实际应用中,标准和扩展
    的头像 发表于 07-24 15:24 2063次阅读

    can标准和扩展的区别

    CAN(Controller Area Network)是一种用于汽车和工业领域的通信协议,它允许多个设备在同一总线上进行通信。CAN协议有两种类型:标准和扩展。这两种类型在结
    的头像 发表于 07-24 15:20 2129次阅读

    CAN数据的各个域及其作用

    CAN(Controller Area Network)是一种用于汽车电子系统中的通信协议,它具有高可靠性、实时性和灵活性等特点。在CAN通信中,数据是最基本的通信单元,用于传输信息。 概述
    的头像 发表于 07-24 15:10 1626次阅读

    touchGFX初始化卡住了怎么解决?

    之前TouchGFX是可以用的,但用cubeMX再生成代码后就不能用了 检查后发现卡在TouchGFX初始化阶段,具体表现为蓝色LED亮红色LED不亮 尝试把堆栈的空间翻倍也没用
    发表于 07-02 07:35

    touchgfx生成代码报错怎么解决?

    touchgfx生成代码报错,怎么解
    发表于 06-03 08:51

    TouchGFX 中 MCU 负载的计算过程介绍

    TouchGFX Desinger 下载的 TBS(TouchGFX Board Setup)大都带有 MCU 的 负载计算功能,那么如何在自己的板子上增加 MCU 负载计算功能呢?本文档参考
    的头像 发表于 05-24 13:24 530次阅读
    <b class='flag-5'>TouchGFX</b> 中 MCU 负载的计算过程介绍

    如何判断USART接收到一帧数据?

    如何判断USART接收到一帧数
    发表于 05-16 07:31

    TouchGFX如何实现视频播放?

    TouchGFX 如何实现视频播放
    发表于 04-12 08:14

    touchgfx掉电重启后卡死无法显示怎么解决?

    萌新求助。。。在cubeIDE上生成的例程,debug调试时正常显示,一旦掉电重启就会卡死无法显示,加载了freeRTOS,创建两个任务,一个touchgfx,一个led灯闪烁。掉电重启后灯也不会亮
    发表于 04-08 07:37

    STM32L4R9移植touchgfx GUI显示控件异常花屏的原因?

    移植touchgfx工程后 (1)开启GUI出显示异常,问题不能确定,怀疑是dma2d送数据不正确,目前未找到touchgfx的填充界面函数在那里??? (2)关闭GUI显示函数,直接调用底层dma2d写的清屏函数可以显示正常!!! 请大佬们帮帮我0.0多谢,帮忙分析一下
    发表于 04-07 08:30

    科学家研发超高帧率相机,每秒拍摄156.3万亿图像

    通过独特的计算成像模式,研究团队成功地让光线于不同时刻进入传感器,使得相机能以惊人的每秒156.3万亿速度拍摄缓慢运动的画面。
    的头像 发表于 03-27 15:46 1063次阅读

    touchgfx如何改变图片颜色?

    touchgfx是否有提供函数可以直接改变image控件中图片的颜色,类似LVGL中图片控件的recolor函数,对图片重新着色成某种纯色图片,如果touchgfx没有这种函数,是否有方法可以实现这种功能?
    发表于 03-15 06:24

    MX生成文件touchGFX无法成功编译是哪里出了问题?

    1、MX生成文件时,toolchian工具选择keil且touchGFX选择高版本时,生成文件可以成功在touchGFX不可以成功编译。 2、toolchian工具选择IDE且touchGFX选择
    发表于 03-13 07:40