打印
[应用相关]

【STM32垂直应用挑战第三周】STM32 GUI学习+TouchGFX体验

[复制链接]
4035|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Liyj336|  楼主 | 2020-12-6 16:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Liyj336 于 2020-12-7 13:41 编辑

1、STM32 GUI系统
现在很多设备都需要GUI界面来提高人们与设备的交互能力。小到手机、大到家电设备等越来越多使用GUI界面。现代的人机交互界面更多需要以下功能:
  • 半透明效果
  • Alpha混合
  • 抗锯齿与浮雕字体
  • 触摸手势
  • 高分辨率和高帧率动画特效
  • 2D/3D旋转


       场景转化ST官方也拥有自己的GUI生态,使用TouchGFX可以很好帮助开发者们建立GUI界面。ST官方针对GUI方面也出了一些教程,但是官方网站还没把视频放上去,但是在下面网站已经可以观看最新的TouchGFX系统教程。最新的TouchGFX教程视频主要有下面几部分组成,已经出到第二讲,感兴趣可以去观看。前三节的课程资料,已上传到附近,需要的自行下载。
视频教程网站:https://c.51diantang.com/columndetail?id=af88926765f94eb8baf8ced639575a51
      我们来看看STM32 产品线在GUI方面支持。
  
STM32  GUI系统主要由三部分组成:
  • LCD接口LTDC/MIPI_DSI/FSMC/SPI
  • 图形加速单元Chrom-ART/JPEG
  • 存储接口Chrom-GRC/FMC/OSPI/SDMMC

LCD接口
LCD不同接口差异如下:
  • LTDC接口

   
  • SPI接口

  
  • FMC接口

  
  • MIPI-DSI接口

  
不同的LCD接口一般适用于不同分辨率大小的LCD屏幕
  • SPI/FMC接口适用于小分辨率的SPI/8080/6800 LCD屏幕。
  • LTDC适用于中等分辨率(高等XGA)的并口LCD屏。
  • MIPI-DSI适用于中等分辨率低功耗LCD,高分辨率GUI。

  
图形加速单元
如果MCU没有图形加速单元硬件,当然也可以通过软件算法来实现图像的处理,但这会大大增加MCU的负载。STM32 MCU图像加速单元主要有
  • Chrom_ART AcceleRator
  • JPEC-Codec
  • Chrom_GRCChrom_ART AcceleRator可以帮助MCU进行图像处理,大大减低MCU的负载。官方说是利用这个加速器可以将MCU负载从80%降到10%左右。JPEC-Codec可以在硬件上面进行视频编解码。降低MCU在处理JPEG数据时的负载。Chrom-GRC可以裁剪非正方形的图像资源,并不需要进行软件修改或特殊管理。

存储接口
因为MCU内部的Flash资源十分有限,GUI界面资源往往会使用大量存储空间,这是我们就需要把GUI的图片、视频资源存放到外部内存空间。存储接口主要包括
  • SDIO/SDMMC接口
  • FMC接口
  • OSPI

2、TouchGFX
TouchGFX是一个基于STM32硬件由C++写成的软件框架,而且对于STM32的用户,它是完全免费试用。要使用TouchGFX,需要下载X-CUBE-TouchGFX软件包。TouchGFX拥有一个很好的开发工具,TouchGFX Designed。它是一个图像化开发工具,可以拖动增加我们需要的控件,可以设置控件的动作,还可以进行仿真查看我们的设置的图像效果。下面是我使用TouchGFX Designer 设置的一个界面,还设置按钮动作,点击按钮,可以跳转到另一个界面。
点击右上角的Run Simulator就可以进行仿真,仿真效果如下。
仿真运行成功后,会出现一个弹窗,出现Screen1界面。

Screen1点击按钮,会跳到Screen2 如下界面。

Screen2点击按钮,会跳到Screen1界面。
无法上传视频,只能传图片了。使用TouchGFX Designer动动鼠标,就能完成简单GUI界面设置,特别方便,十分推荐。
3、GUI界面开发
官方的教程视频里面有创建TouchGFX工程的教程,分别有两种不同的案例。
  • 基于ST官方的STM32 MCU的硬件开发板主要使用TouchGfx Designer软件
  • 基于非ST官方的STM32 MCU的硬件板卡主要使用STM32CubeMX和TouchGFX Designer软件。使用ST官方板子,主要由以下大概以下步骤进行开发

使用ST官方板子,在TouchGFX Designer可以点击按钮,直接把应用程序烧录到开发板。

使用非ST官方的STM32板卡主要由以下大概步骤进行开发。
里面每个步骤都有一些需要注意的点,这里就不细说,感兴趣的可以查看教程视频。需要注意的是,TouchGFX默认使用的FreeRTOS操作系统,如果想要改成其他RTOS系统可以查找教程,可以参考进行修改。
4、TouchGFX体验
我自己也做了一个小Demo例程,上面已经使用TouchGFX Designer进行仿真演示。接下来我要把它运行在板子上运行。但是工程代码还是需要更改很多地方的。这里我就不细说移植过程,有时间再出一篇详细的**进行说明。这里不使用FreeRTOS而是使用RT-Thread。
硬件使用情况:
  • ART-Pi开发板
  • LCD屏(4.3寸、 分辨率480*272、并行RGB接口)
  • GT9147触摸芯片(LCD屏幕自带)

软件使用情况:
  • RT-Thread Studio
  • TouchGFX Desinger 15.0
  • STM32 CUbeMX 6.1.0板子运行情况

  板子开启后,运行界面如下。

  
点击按钮,会跳到如下界面。


5、总结
我觉得TouchGFX是一个很好的GUI方面的工具,界面生成简单,界面效果也很好。但是要把TouchGFX应用到板子上,还是有一定难度的,不同硬件和接口配置我觉得还挺复杂。接下来我会自己尝试着,自己做一个GUI显示时钟表的Demo,进一步学习TouchGFX Designer的使用。

95FCCE60B6DE3.pdf

4.6 MB

5313CE58F7C45.pdf

1.16 MB

2.X-Cube-TouchGFX快速上手v1.1.pdf

4.67 MB

使用特权

评论回复
沙发
caoenq| | 2020-12-7 13:18 | 只看该作者
你好,并没有看到视频的网址

使用特权

评论回复
板凳
Liyj336|  楼主 | 2020-12-7 13:42 | 只看该作者
caoenq 发表于 2020-12-7 13:18
你好,并没有看到视频的网址

https://c.51diantang.com/columndetail?id=af88926765f94eb8baf8ced639575a51
在这里

使用特权

评论回复
地板
caoenq| | 2020-12-8 08:42 | 只看该作者
Liyj336 发表于 2020-12-7 13:42
https://c.51diantang.com/columndetail?id=af88926765f94eb8baf8ced639575a51
在这里

感谢大佬。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

40

帖子

0

粉丝