[GUI] TouchGFX界面应用之STM32显示移植

[复制链接]
4496|20
 楼主| 51xlf 发表于 2022-2-22 23:57 | 显示全部楼层 |阅读模式
先打开或者重新创建一个STM32CubeMX驱动LCD的工程。
开启一个TIM1为TouchGFX框架作为时基,这个开启时钟源来即可,下面的参数不需要设置,设置也没用或者反作用。
180700gurmi442770q287p.png

开启FMC为LCD 提供显存
180700j4ihh4g03vw4wzdu.png

开启DM2D
180700ih2dp786d8hjd7f7.png

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

设置层数
180701rb1252b5m2tbibqt.png

开启LTDC和DM2D中断,这个很重要
180701y9ky21apfhe102z6.png


180701cbv28frck56ar2e6.png

开启CRC校验
180701hyxnmrrrdu78oymk.png


180701jkams2e45888gtdd.png

开启FreeRTOS
180701grw565w611m634t4.png

开启GRAPHICS,选择TouchGFX ,检查参数是否正确
180701sjjnkdns7mn7t5i7.png


180701k6z1g36g316cnn6c.png

设置时基源为TM2。
180701jmsfvk4koksv9kzv.png

设置好时钟。
180702lxoqusnlwdnezqln.png


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

在TouchGFX 文件夹中如下
180702xq82kq6p2nujuz8q.png

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

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

180702zgb7yqbd7pzvgdvd.png

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

添加如下:
180702u18ff00bw0d0jvm1.png

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

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


180702mtk0e0gquist00y8.png

好编译过了下载板子试一试
180703dapmhxk2dudxkx7d.png

ok,完美,哦不,,,触摸没有效果呀。
180703sumxdbxmg5ooxgmg.png

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

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

然后编译下载,使用效果。
180700ead6q96v896e8vsv.gif

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

180703x1pvd5so1lnvrsnz.png


评论

非常感谢大佬的分享,我现在只能用touchgfx生成模版,自己配试了好几次都没有成功,我跟着老师的教程学习学习。  发表于 2023-12-21 10:43
kiwis66 发表于 2022-2-23 13:39 | 显示全部楼层
很棒,总结的很详细,感谢
10299823 发表于 2022-11-19 12:02 | 显示全部楼层
TouchGFX是一款免费的GUI工具,可以在STM32上运行。
belindagraham 发表于 2022-11-20 11:51 | 显示全部楼层
如何使用TouchGFX助力STM32+SPI屏显示?
wengh2016 发表于 2022-11-20 15:20 | 显示全部楼层
TouchGFX支持STM32的全系列开发板。
jtracy3 发表于 2022-11-20 16:41 | 显示全部楼层
TouchGFX中一个易于使用的GUI构建器,让你创建TouchGFX应用程序的视觉外观。
qiufengsd 发表于 2022-11-20 17:52 | 显示全部楼层
touchgfx怎么添加stm32模板?
sdCAD 发表于 2022-11-23 23:18 | 显示全部楼层
touchgfx stm32可以免费用吗
benjaminka 发表于 2022-11-24 15:30 | 显示全部楼层
stm32f103能运行touchgfx吗   
Uriah 发表于 2023-11-5 07:16 | 显示全部楼层

要把纹波电流平均分布
Bblythe 发表于 2023-11-5 08:09 | 显示全部楼层

发射出过量的电磁干扰(EMI)
Wordsworth 发表于 2023-11-5 09:12 | 显示全部楼层

典型的转换时间大约是50ns
Uriah 发表于 2023-11-5 10:15 | 显示全部楼层

这种方法可以使散热体积和表面面积增大两倍多
Bblythe 发表于 2023-11-5 12:11 | 显示全部楼层

负载环能以直流方式汲取能量
Uriah 发表于 2023-11-5 13:14 | 显示全部楼层

功率开关漏极(或集电极)
Bblythe 发表于 2023-11-5 15:10 | 显示全部楼层

输出整流器交流电流环路
Wordsworth 发表于 2023-11-5 16:13 | 显示全部楼层

在其他的交流电流环路都布置好后再放置
Bblythe 发表于 2023-11-5 18:09 | 显示全部楼层

任何与多条功率线相连的功率器件要尽可能紧挨在一起,以减短连线长度
Wordsworth 发表于 2023-11-5 19:12 | 显示全部楼层

工作时的电压降低了
mahorin 发表于 2025-3-5 16:46 | 显示全部楼层
不错的经验,可以参考
您需要登录后才可以回帖 登录 | 注册

本版积分规则

551

主题

9998

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部