本帖最后由 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接口LCD不同接口差异如下:
不同的LCD接口一般适用于不同分辨率大小的LCD屏幕 SPI/FMC接口适用于小分辨率的SPI/8080/6800 LCD屏幕。 LTDC适用于中等分辨率(高等XGA)的并口LCD屏。 MIPI-DSI适用于中等分辨率低功耗LCD,高分辨率GUI。
图形加速单元如果MCU没有图形加速单元硬件,当然也可以通过软件算法来实现图像的处理,但这会大大增加MCU的负载。STM32 MCU图像加速单元主要有 存储接口因为MCU内部的Flash资源十分有限,GUI界面资源往往会使用大量存储空间,这是我们就需要把GUI的图片、视频资源存放到外部内存空间。存储接口主要包括 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官方板子,在TouchGFX Designer可以点击按钮,直接把应用程序烧录到开发板。
使用非ST官方的STM32板卡主要由以下大概步骤进行开发。 里面每个步骤都有一些需要注意的点,这里就不细说,感兴趣的可以查看教程视频。需要注意的是,TouchGFX默认使用的FreeRTOS操作系统,如果想要改成其他RTOS系统可以查找教程,可以参考进行修改。 4、TouchGFX体验我自己也做了一个小Demo例程,上面已经使用TouchGFX Designer进行仿真演示。接下来我要把它运行在板子上运行。但是工程代码还是需要更改很多地方的。这里我就不细说移植过程,有时间再出一篇详细的**进行说明。这里不使用FreeRTOS而是使用RT-Thread。 硬件使用情况: 软件使用情况: RT-Thread Studio TouchGFX Desinger 15.0 STM32 CUbeMX 6.1.0板子运行情况
板子开启后,运行界面如下。
点击按钮,会跳到如下界面。
5、总结我觉得TouchGFX是一个很好的GUI方面的工具,界面生成简单,界面效果也很好。但是要把TouchGFX应用到板子上,还是有一定难度的,不同硬件和接口配置我觉得还挺复杂。接下来我会自己尝试着,自己做一个GUI显示时钟表的Demo,进一步学习TouchGFX Designer的使用。
|