立即注册 找回密码

微雪课堂

搜索

4.TouchGFX界面应用之STM32显示移植

2019-11-4 17:54| 发布者: Ezio_神仙醋| 查看: 17825| 评论: 8

摘要: TouchGFX前面几个教程都是在模拟器上跑都没有下到开发板子上过那就不好玩了啊,那我接下来将如何移植到stm32上面运行,我这里以非官方板为例。我们使用的是STM32CubeMX软件生成我的版本是5.2,使用STM32F746IGT6为核 ...
TouchGFX前面几个教程都是在模拟器上跑都没有下到开发板子上过那就不好玩了啊,那我接下来将如何移植到stm32上面运行,我这里以非官方板为例。
我们使用的是STM32CubeMX软件生成我的版本是5.2,使用STM32F746IGT6为核心的开发板为Open746I-C:https://www.waveshare.net/shop/Open746I-C.htm,使用7寸电容触摸屏:https://www.waveshare.net/shop/7inch-Capacitive-Touch-LCD-F.htm 分辨率为1024×600。
先打开或者重新创建一个STM32CubeMX驱动LCD的工程。
开启一个TIM1为TouchGFX框架作为时基,这个开启时钟源来即可,下面的参数不需要设置,设置也没用或者反作用。

开启FMC为LCD 提供显存

开启DM2D

开启LCD 驱动器,设置好像素点和参数。

设置层数

开启LTDC和DM2D中断,这个很重要


开启CRC校验


开启FreeRTOS

开启GRAPHICS,选择TouchGFX ,检查参数是否正确


设置时基源为TM2。

设置好时钟。


在配置TouchGFX 前可以先去试一试LCD的硬件和软件是否有问题,如果没问题在进行下一步。如果不使用STM32CubeMX生成也可以,只需要保证LCD配置和FreeRTOS可以正常工作也可以,在中间加入这些文件是一样的。
生成代码,在STM32CubeMX工作目录下创建一个TouchGFX文件夹,将TouchGFX 工程放在进去

在TouchGFX 文件夹中如下

然后打开keil5工程编译,编译会报错,说函数没有定义。

然后把\TouchGFX\generated和\TouchGFX\gui文件夹下所有.cpp加载到工程中。

再把对应的头文件文件夹设置好,我这里但是系统默认设置好的,我只加了一个。

添加如下:

编译结束有一些没使用大图片的内存就够了,使用了大图片的内存就不够,哪怕图片只是加载到你的工程没有使用也不可以。

移除大图片后发现还有两个错误,这两个错误,找了一些发现有定义但是没有在头文件里面声明,导致编译器找不到,我们在main.h中声明这两个变量。


好编译过了下载板子试一试

ok,完美,哦不,,,触摸没有效果呀。

那我们加一个触摸,我们提前准备一个触摸程序,准备直接移植,我使用的是GT911触摸芯片,触摸屏支持5点触控,但是我们只使用一个点。

在STM32F7TouchController.cpp中有
void STM32F7TouchController::init() //触摸屏初始化函数
bool STM32F7TouchController::sampleTouch(int32_t& x, int32_t& y) //触摸屏读取触摸点函数
两个函数,我们加入我们的程序进去。

然后编译下载,使用效果。

注意:不要让然触摸程序一直卡死等待,不然一样没有效果,可以适当添加串口打印数据,但是不要使用printf这个函数。不管你是否重定义了,都不要使用。如果想使用TouchGFX自带的一些GUI,然后下载程序却内存不够那就请使用QSPI扩展内存来实现。
如果你的是官方板选择对应的开发板下载好驱动,可以直接下载。


195

顶一下

刚表态过的朋友 (195 人)

发表评论

最新评论

引用 林俊杰 2021-4-9 17:16
新建工程的时候选择target language为c++而不是默认的C语言就没问题了。
jaymie: 基于PC touchgfx生成一个工程,移植到STM32CUBEIDE编译器上,编译时候发现提示undefined reference to `touchgfx_init'        app_touchgfx.c  但是touchgfx_in ...
引用 jaymie 2021-3-2 11:27
基于PC touchgfx生成一个工程,移植到STM32CUBEIDE编译器上,编译时候发现提示undefined reference to `touchgfx_init'        app_touchgfx.c
但是touchgfx_init();这个函数虽然在app_touchgfx.c声明,但未定义,而是在TouchGFXConfiguration.cpp 中被声明定义。
请问楼主和小伙伴们遇到这个问题吗?谢谢
引用 游客 2020-6-22 14:17
楼主我有事要请教。
Browse information of one or more files is not available:
../Src/TouchGFXConfiguration.cpp
Doing a project rebuild might fix this.

我的微信:Airhitamzai
引用 游客 2020-6-18 09:05
楼主能分享一下工程么,万分感谢,562452486@qq.com
引用 xudongqiang 2020-5-19 15:56
你好 能分享一下程序吗?xudongqiang987@126.com  谢谢!!
引用 游客 2020-5-19 10:57
wangzhuqiang: 请问楼主编译错误怎么解决的。
看你是什么错误咯,不同的错误不同的解决方法
引用 wangzhuqiang 2020-4-28 15:07
请问楼主编译错误怎么解决的。
引用 游客 2020-4-6 18:50
楼主源程序能分享下吗

查看全部评论(8)

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-12-22 16:36 , Processed in 0.014482 second(s), 16 queries .