专栏首页嵌入式程序猿让TouchGFX在你的板子上跑起来

让TouchGFX在你的板子上跑起来

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

本文分享自微信公众号 - 嵌入式程序猿(InterruptISR),作者:小猿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 那一夜,我选择了T,放弃了e

    前两天,西安下了一场大雪,天气冷了许多,办公室的灯光映射着屋外的雪花,似乎给这寒冷的夜添了些许的热闹,之前一个项目在用emwin做GUI界面,可意法半导体自收购...

    用户1605515
  • 让RT-Thread在frdm-k64上跑起来

    RT-Thread绝对算得上是国产RTOS操作系统里优秀的一支,也获得了风险投资,发展势头迅猛,合作伙伴也越来越多,基于RTT的产品也越来越多,有消费类电子的...

    用户1605515
  • 让chrome插件在手机上跑起来

    本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载 创建一个chrome的插件,并让这个插件能够作为一个app,运行在终...

    IMWeb前端团队
  • 让 Flutter 在鸿蒙系统上跑起来

    鸿蒙系统 (HarmonyOS)是华为推出的一款分布式操作系统,那么如何在保证开发迭代效率的前提下,以相对低的成本将移动应用快速移植到鸿蒙平台上呢?美团外卖 M...

    美团技术团队
  • 让chrome插件在手机上跑起来

    创建一个chrome的插件,并让这个插件能够作为一个app,运行在终端设备上。 <!--more-->

    IMWeb前端团队
  • 【DIY数字仪表】STM32F429移植TouchGFX到RT-Thread系统(1)

    硬件: 野火挑战者STM32F429 V1开发版,5寸屏 软件:最新版本的STM32CubeF4固件库,TouchGFXDesigner v4.13和 ST...

    AIoT-KK
  • 【STM32H7】第1章 当前主流的小型嵌入式GUI

    这几年Cortex-M系列单片机发展迅猛,功能也越来越强劲,随之而来的就是小型嵌入式GUI也得到很好的发展。本章节就为大家介绍下当前主流的小型嵌入式GUI。

    armfly
  • 【STM32F429】第1章 当前主流的小型嵌入式GUI

    这几年Cortex-M系列单片机发展迅猛,功能也越来越强劲,随之而来的就是小型嵌入式GUI也得到很好的发展。本章节就为大家介绍下当前主流的小型嵌入式GUI。

    armfly
  • 嵌入式Linux系列第12篇:LCD显示及QT

    有些嵌入式设备会有一块显示屏,用来显示各种图案、按钮等元素,单片机里常见的UI有emWin、TouchGFX等。Linux里常用QT,Qt是一个跨平台个C++应...

    用户2366192

扫码关注云+社区

领取腾讯云代金券