让TouchGFX在你的板子上跑起来

1. 摘要

本文档主要介绍,如何快速搭建起在STM32上运行的TouchGFX底层驱动和应用,以STM32H743为例。

2. 准备工作

安装CubeMX 6.0.1

安装IAR 8.32或以上

安装TouchGFX Designer

3. 动手制作

炫酷的HMI界面例来都是嵌入式开发中的重要内容,而友好的人机界面也会大大提高产品的感官和操作性,为用户提供更多的便利,自ST 收购TouchGFX后, 可以在STM上免费使用,而TouchGFX炫酷的界面和一条龙的制作界面也大大吸引了很多嵌入式程序猿,我将最近开发的项目中使用emwin开发的界面修改成了利用TouchGFX开发,分享给大家一个指南,方便快速上手。

让TouchGFX在你的板子上跑起来_第1张图片

利用CubeMX建立工程,配置初始化参数和外设时钟等,做GUI界面需要配置的外设有DMA2D,FMC,LTDC, QSPI flash等,不管是用emwin还是TouchGFX,我们都需要正确配置这些外设。我们配置系统时钟到400M,SDRAM 200M, LTDC 24M,这些要根据自己的应用和硬件去配置。如果不合适,也可以直接在代码中修改调试。来看看其他外设的配置

3.1 FMC

FMC外设,也就是挂载我们的SDRAM,用来做HMI的缓存和冬天内存,所以非常关键,参数的配置要根据自己所使用的芯片手册,这个配置的管脚比较多,要仔细对待。

让TouchGFX在你的板子上跑起来_第2张图片

让TouchGFX在你的板子上跑起来_第3张图片

参数需查阅你使用的SDRAM芯片的手册配置,以保证SDRAM正常运行的基础。

3.2 LTDC

STM32H743自带RGB屏的控制器,我们只需要配置就可以,这个也需要按照手册上的参数进行配置,否则屏幕不一定能正常点亮。

让TouchGFX在你的板子上跑起来_第4张图片

3.3 DMA2D

DMA2D的配置比较简单,但他的作用可不容小觑,用来加速,是图形界面的利器。

让TouchGFX在你的板子上跑起来_第5张图片

3.4 QSPI

QSPI的配置也比较简单,管脚比较少,我是直接复用之前的驱动,所以在CubeMX里面没有配置,这个大家根据自己的实际配置。

3.5 TouchGFX

配置TouchGFX 软件包

让TouchGFX在你的板子上跑起来_第6张图片

使能TouchGFX Generator, 配置参数

让TouchGFX在你的板子上跑起来_第7张图片

因为TouchGFX 需要配置一些外设,SDRAM用来作为缓存和动态内存,qspi flash用来存储图片,字库等资源,如果你是开发一些很简单的界面存在内部flash也是可以的,但是要想开发炫酷的界面,我们一般都需要使用SPI flash存在外部,不占用MCU的内部flash资源,

3.6 FreeRTOS

因为我们需要跑操作系统,CubeMX可以直接配置freeRTOS, 配置freeRTOS,配置GUI任务

让TouchGFX在你的板子上跑起来_第8张图片

让TouchGFX在你的板子上跑起来_第9张图片

3.7 工程 生成配置

让TouchGFX在你的板子上跑起来_第10张图片

让TouchGFX在你的板子上跑起来_第11张图片

点击Generator CODE 生成代码,先不要编译。

3.8 TouchGFX Designer

用上位机软件TouchGFX Designer打开工程例TouchGFX文件下的后缀为touchgfx的文件进行编辑,可以直接导入例程的摸板。

让TouchGFX在你的板子上跑起来_第12张图片

我们来导入最后一个

让TouchGFX在你的板子上跑起来_第13张图片

让TouchGFX在你的板子上跑起来_第14张图片

可以在线仿真和生成代码,这里直接生成代码,

让TouchGFX在你的板子上跑起来_第15张图片

这时候打生成的IAR工程,是编译不过的,我们需要修改工程配置,添加IAR的QSPI 下载算法,移植QSPI驱动,并使能内存映射模式,修改icf文件等。

3.9 修改工程配置

让TouchGFX在你的板子上跑起来_第16张图片

让TouchGFX在你的板子上跑起来_第17张图片

必须提前制作好下载算法,不然图片,字库等是下不到外部flash的,这就是前两次推送都给大家分别介绍了IAR 的下载算法制作,必须掌握。下载算法的制作可以参照之前的推送文章。这里不在赘述,只需配置支持就好,

3.10 移植QSPI驱动

QSPI驱动需要根据自己所使用的SPI flash手册配置修改和添加,因为不同厂家可能时序和指令以及操作略有不同,这里以华邦的W25Q01JV为例来说。这里直接复用之前工程的代码,只需打开内存映射模式即可。

让TouchGFX在你的板子上跑起来_第18张图片

涉及操作的函数就不一一列举了,关注之前将QSPI的推文就好。

3.11 需改ICF文件

需要修改icf文件,配置QSPI内存映射的地址,并定义ExtFlashSection.

让TouchGFX在你的板子上跑起来_第19张图片

3.12 添加回调函数

让TouchGFX在你的板子上跑起来_第20张图片

3.13 添加触摸驱动

因为需要采集触摸屏的信息,所以还需要添加触摸驱动,我使用的是电阻屏,还需要添加校准,根据自己使用的不同的触摸IC添加不同的驱动,

让TouchGFX在你的板子上跑起来_第21张图片

这样基本就集齐了所有神兽,可以随便玩TouchGFX了,每次修改玩界面,生成的代码可以自动关联到IAR工程,主要是通过自动生成的ipcf文件来完成

让TouchGFX在你的板子上跑起来_第22张图片

4. 验证测试

好了,这下我们来编译工程,无误后,下载到板子上验证

让TouchGFX在你的板子上跑起来_第23张图片

让TouchGFX在你的板子上跑起来_第24张图片

让TouchGFX在你的板子上跑起来_第25张图片

证明工程没有问题,还可以导入其他UI试试,经验证,ST提供的所以例程都可以稳定运行。下次为大家分享TouchGFX中的中文显示。文中提到的外部QSPI flash下载算法制作可以参照之前分享的文章。有了上面的工程, 想要验证ST其他的UI例程,只需自动生成即可。工程不需要在添加任何文件。

5. 参考文档

序号

文献

1

touchgfx-documentation4.15

2


你可能感兴趣的:(嵌入式,python,java,编程语言,单片机)