本篇文章用来介绍一下怎么使用RTThread Studio 在ART-PI平台上面移植TouchGFX,并做一个简单的触摸按键让LED灯闪烁试验。
我使用的液晶屏幕是正点原子的4.3寸RGBLCD,触摸芯片是GT9147。要注意的是正点原子的GT9147板液晶有新旧两个版本,目前RTT Studio里面的GT9147包读取新版的触摸位置不对。本文会简单介绍一下在移植中出现的常见的问题。
再开发之前需要下载最新的RTThread Studio 2.0.0,下载最新的ART-PI BSP1.1.0
随后要基于ART-PI开发板新建一个项目工程,打开配置软件包的页面配置软件,搜索GT9147包添加。点击 C++ 和 软件模拟IIC 两项添加进工程





添加TouchGFX库,配置IIC驱动选择IIC1。使用ctrl+s保存目前的配置。
在以下的路径下打开STM32H7xx_HAL_CONF.h,取消CRC和DMA2D的宏屏蔽。打开构建配置按钮配置一下C++编译器的属性。如果找不到GNU ISO 2011,那么需要重装Studio。


此时编译一下没有错误

这个时候如果使用的是新版的GT9147触摸芯片的LCD ,此时下载触摸屏幕没有反应,因此需要修改一下程序。打开STM32TouchController.cpp文件修改sampleTouch函数。

这样就可以了。
点击下载程序后会观察到屏幕只有中间部分有图显示,不用怀疑是分辨率问题这是因为图像设计就是这么大。打开工程所在的目录,找到libraries\touchgfx_lib\touchGfx 下面的art_pi.touchgfx 使用4.15版本的TouchGFX打开修改控件和图形。


此时可以滑动右侧的滑竿观察图表波形的变化。如果触摸屏移植成功的话能够正常拖动滑竿。
下面介绍一下怎么使用按钮控件来打开和关闭LED。
首先要在设计面上添加一个按钮控件,设置它的名称和显示文本,随后添加它的行为动作函数。在填写函数名称和交互函数的时候要注意不能和程序中出现偏差。配置完毕后点击生成代码。使用Rtthread Studio打开工程后刷新一下工程,确保文件最新。




打开MainView.hpp添加虚函数定义,在MainView.cpp中添加虚函数的实现。

打开MAINPRESENTER.HPP添加新的虚函数定义,

在MAINPRESENTER.cpp里面添加实现。

在Model.hpp里面添加新的函数定义 [open()]和头文件


在model.cpp里面实现函数,这是我们最终要实现的功能控制LED亮灭。这是标准的TouchGFX开发流程,但是看上去非常的麻烦。其实可以在MainView.cpp里面实现这个功能就是这样做偏离了TouchGFX的设计理念。

代码地址为:链接:https://pan.baidu.com/s/16sbPigDDguNFmRvuT-7ITA
提取码:eaym
7481

被折叠的 条评论
为什么被折叠?



