1. 摘要
本文档主要介绍,如何快速搭建起在STM32上运行的TouchGFX底层驱动和应用,以STM32H743为例。
2. 准备工作
安装CubeMX 6.0.1
安装IAR 8.32或以上
安装TouchGFX Designer
3. 动手制作
炫酷的HMI界面例来都是嵌入式开发中的重要内容,而友好的人机界面也会大大提高产品的感官和操作性,为用户提供更多的便利,自ST 收购TouchGFX后, 可以在STM上免费使用,而TouchGFX炫酷的界面和一条龙的制作界面也大大吸引了很多嵌入式程序猿,我将最近开发的项目中使用emwin开发的界面修改成了利用TouchGFX开发,分享给大家一个指南,方便快速上手。
利用CubeMX建立工程,配置初始化参数和外设时钟等,做GUI界面需要配置的外设有DMA2D,FMC,LTDC, QSPI flash等,不管是用emwin还是TouchGFX,我们都需要正确配置这些外设。我们配置系统时钟到400M,SDRAM 200M, LTDC 24M,这些要根据自己的应用和硬件去配置。如果不合适,也可以直接在代码中修改调试。来看看其他外设的配置
3.1 FMC
FMC外设,也就是挂载我们的SDRAM,用来做HMI的缓存和冬天内存,所以非常关键,参数的配置要根据自己所使用的芯片手册,这个配置的管脚比较多,要仔细对待。
参数需查阅你使用的SDRAM芯片的手册配置,以保证SDRAM正常运行的基础。
3.2 LTDC
STM32H743自带RGB屏的控制器,我们只需要配置就可以,这个也需要按照手册上的参数进行配置,否则屏幕不一定能正常点亮。
3.3 DMA2D
DMA2D的配置比较简单,但他的作用可不容小觑,用来加速,是图形界面的利器。
3.4 QSPI
QSPI的配置也比较简单,管脚比较少,我是直接复用之前的驱动,所以在CubeMX里面没有配置,这个大家根据自己的实际配置。
3.5 TouchGFX
配置TouchGFX 软件包
使能TouchGFX Generator, 配置参数
因为TouchGFX 需要配置一些外设,SDRAM用来作为缓存和动态内存,qspi flash用来存储图片,字库等资源,如果你是开发一些很简单的界面存在内部flash也是可以的,但是要想开发炫酷的界面,我们一般都需要使用SPI flash存在外部,不占用MCU的内部flash资源,
3.6 FreeRTOS
因为我们需要跑操作系统,CubeMX可以直接配置freeRTOS, 配置freeRTOS,配置GUI任务
3.7 工程 生成配置
点击Generator CODE 生成代码,先不要编译。
3.8 TouchGFX Designer
用上位机软件TouchGFX Designer打开工程例TouchGFX文件下的后缀为touchgfx的文件进行编辑,可以直接导入例程的摸板。
我们来导入最后一个
可以在线仿真和生成代码,这里直接生成代码,
这时候打生成的IAR工程,是编译不过的,我们需要修改工程配置,添加IAR的QSPI 下载算法,移植QSPI驱动,并使能内存映射模式,修改icf文件等。
3.9 修改工程配置
必须提前制作好下载算法,不然图片,字库等是下不到外部flash的,这就是前两次推送都给大家分别介绍了IAR 的下载算法制作,必须掌握。下载算法的制作可以参照之前的推送文章。这里不在赘述,只需配置支持就好,
3.10 移植QSPI驱动
QSPI驱动需要根据自己所使用的SPI flash手册配置修改和添加,因为不同厂家可能时序和指令以及操作略有不同,这里以华邦的W25Q01JV为例来说。这里直接复用之前工程的代码,只需打开内存映射模式即可。
涉及操作的函数就不一一列举了,关注之前将QSPI的推文就好。
3.11 需改ICF文件
需要修改icf文件,配置QSPI内存映射的地址,并定义ExtFlashSection.
3.12 添加回调函数
3.13 添加触摸驱动
因为需要采集触摸屏的信息,所以还需要添加触摸驱动,我使用的是电阻屏,还需要添加校准,根据自己使用的不同的触摸IC添加不同的驱动,
这样基本就集齐了所有神兽,可以随便玩TouchGFX了,每次修改玩界面,生成的代码可以自动关联到IAR工程,主要是通过自动生成的ipcf文件来完成
4. 验证测试
好了,这下我们来编译工程,无误后,下载到板子上验证
证明工程没有问题,还可以导入其他UI试试,经验证,ST提供的所以例程都可以稳定运行。下次为大家分享TouchGFX中的中文显示。文中提到的外部QSPI flash下载算法制作可以参照之前分享的文章。有了上面的工程, 想要验证ST其他的UI例程,只需自动生成即可。工程不需要在添加任何文件。
5. 参考文档
序号 | 文献 |
---|---|
1 | touchgfx-documentation4.15 |
2 |