touchgfx程序_让TouchGFX在你的板子上跑起来

本文档详述如何在STM32H743上搭建并运行TouchGFX程序,包括CubeMX配置、SDRAM、LTDC、DMA2D、QSPI设置,以及TouchGFX Generator、FreeRTOS的使用,同时讲解了如何处理IAR工程配置、QSPI驱动移植和触摸屏驱动的添加。
摘要由CSDN通过智能技术生成
1. 摘要

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

2. 准备工作

安装CubeMX 6.0.1

安装IAR 8.32或以上

安装TouchGFX Designer

3. 动手制作

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

d1e50c64e333d4fec855f822fe447145.png

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

3.1 FMC

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

864761397b2a9fb94767a32414c8d143.png

0b559a5c6c4b5d0d7ddb4d56ef94a435.png

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

3.2 LTDC

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

bce0ff2999fd4ed5b9cb040ca4fca762.png

3.3 DMA2D

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

2a0a30c04089f00d54b9ad03ce762ea3.png

3.4 QSPI

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

3.5 TouchGFX

配置TouchGFX 软件包

1a8418d160d663012629c042ca614da3.png

使能TouchGFX Generator, 配置参数

a3bc454a8f4c17bb2a55999eaf5d8e48.png

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

3.6 FreeRTOS

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

8da90aaab339e5e6748ff9bcc89ffc2d.png

80ea53dcf3105508e8ef4fd940987435.png

3.7 工程 生成配置

af5829079a8b9a21fa7ad74b2dd8a00a.png

dbe5f116eec9c9cb74ca7bf10a59d8a5.png

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

3.8 TouchGFX Designer

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

0dd4008bdb0db414e6c32e53a407160b.png

我们来导入最后一个

eb89e66836b3f9d85c09c206171c9fa8.png

b50f44b108c2c7476c6ab17198c4d10b.png

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

2d4c54ddc45fdacc55d117274d1bfada.png

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

3.9 修改工程配置

ccdf20d5da5b0137ce33f5a127dc03c1.png

863ede4de8d00451cb164627bf3140b0.png

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

3.10 移植QSPI驱动

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

1a8c15d4be58bfe4c70ccf425b039eb5.png

3793d3f36fdbf473a8c64b842e6ba178.png

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

3.11 需改ICF文件

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

6f7598ba72ecb09d7bc5414e1209c894.png

3.12 添加回调函数

cd744881acc326dcccf0d6238507a037.png

3.13 添加触摸驱动

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

a4cc09c542a408fa0fc7e3d239959aff.png

c3e550dc226796a18cb35e06e4f57ca2.png

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

70165d34cd6bfa627a220db85ef0c0e1.png

4. 验证测试

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

d8f55b114fa8f80c2d68354421e84335.png

72a388fce9e8c8a12a5bdd1ab8fbcfb2.png

194b6bff1225f1b44f6ee0ad9d9b0c56.png

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

5. 参考文档

序号

文献

1

touchgfx-documentation4.15

2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值