RT-Thread ART-PI 学习笔记:TouchGFX的使用和配置

前言

touchgfx是一款嵌入式GUI中间件,2018年秋被意法半导体收购,官方文档全面,且有专用的GUI设计软件,适合用于STM32平台上GUI界面的开发。本文是记录基于RT-Thread推出的ART-PI,stm32h750开发板,对touchgfx进行移植和初步使用。

touchgfx文档

前期准备

软件准备

  • RT-Thread Studio:一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。官网链接
  • TouchGFX Designer:TouchGFX 的GUI设计工具 官网链接

硬件准备

  • RT-Thread 推出的ART-PI STM32H750开发板
  • 正点原子 800*480 4.3寸 RGBLCD屏,搭载GT9147触摸芯片

配置步骤

下载SDK

在RT-Thread Studio的SDK管理器中下载ART-PI的SDK

新建工程

基于开发板建立模板工程

打开touchgfx库

art-pi官方已经集成了touchgfx的库,如果是其他开发板,需要在软件包库里面找touchgfx的软件包

打开DMA2D和CRC外设

DMA2D是stm32上的硬件图形加速器,详细内容参考 参考博客

配置c++编译规则

根据官方文档给出的要求配置c++编译规则 文档链接

清空项目并重新编译

重新编译并且烧写程序进开发板,这时发现已经有示例界面出现了,但是还没有触摸功能,下一步就是打开触摸功能。

使能触摸芯片

添加gt9147触摸芯片软件包,使能IIC协议

编译并下载

正常来说这一步触摸功能就已经OK了,但是我的这个显示屏还是有问题,通过打开调试终端发现,程序hard fault.说明是配置gt9147的过程中出了问题,终端显示point_num=10,但是通过查阅gt9147的芯片手册发现gt9147最多5点触控,应该是这里出了问题。

最后找到了touchgfx查询触摸坐标的接口,发现之前的point_num=10传给了rt_device_read去读gt9147,但是最多只能读5个点,导致报错。这个地方需要改过来。后面还发现触摸坐标是反的,于是把xy坐标计算的地方也要相应的改过来。

下图是修改之后的代码,修改之后重新编译下载,没有报错,触摸功能正常使用,终端正常显示。

对不同屏幕的适配

如果屏幕分辨率和色深不一样的话需要在这三个文件中进行更改。


GUI设计

  • 安装好TouchGFX Designer后,打开art_pi.touchgfx
  • 添加一个文本框输入helloworld,点击RUN Simulator运行仿真(需要安装VS2013以上版本)


下图是仿真界面

Generate Code生成代码,并在工程中更新软件包(重要),因为Generate Code生成的是基于freetos的代码,更新软件包换成适配rtt的。

编译下载观察现象

界面修改成功,为进一步的界面设计和修改奠定基础。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 张竞豪的小岛 All Rights Reserved.

UV : | PV :