硬汉嵌入式论坛

 找回密码
 立即注册
查看: 48547|回复: 96
收起左侧

[TouchGFX] 基于CubeMX 5.0的TouchGFX移植教程

  [复制链接]

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
发表于 2018-12-4 01:12:38 | 显示全部楼层 |阅读模式
本帖最后由 allyzc 于 2018-12-4 08:49 编辑

本移植使用ARMFLY V6+7寸屏开发板。
一些注意事项会标红。
自行准备工作:
1、CubeMX更新5.0版本。
2、F4固件库更新至stm32cube_fw_f4_v1230。
3、安装TouchGFX设计器,在CUBE固件库下有,即安装以下文件STM32Cube_FW_F4_V1.23.0\Middlewares\ST\TouchGFX\installer\TouchGFX-4.10.0.msi


根据CUBEMX中TouchGFX的要求,需要满足以下条件
1.png
即FreeRTOS,DMA2D,CRC,SDRAM,LTDC,还有一个定时器TIM。


以下开始新建工程
1、简单的先勾一下,使能RCC时钟,使能CRC校验。
2、SYS下使能DEBUG方式,不然第二次可能无法下载程序,这是CUBEMX的一点使用经验
2.png

3、使能FMC的SDRAM
3.png

4、使能LTDC,与DMA2D,这里要注意,只能选RGB888或是RGB565格式,不能选ARGB8888格式,不然TOUCHGFX配置会出错,切记
4.png

5、使能一下定时器,我这里使用了TIM3,切记不能勾选它的中断
5.png


6、勾选FreeRTOS,有2个注意点,需要打开USE_APPLICATION_TASK_TAG功能,分配给GFX的任务内存要大点,不然死机。
6.png
7.png

7、使能TouchGFX,修改分辨率,切换TouchGFX选项,
8.png


选择GFX的设计器
9.png

8、工程配置,勾选生成的外设生成.c和.h文件,这样方便管理工程
10.png

9、生成工程代码,点YES
11.png

这时候编译工程会发现很多错误
12.png

切换回CUBEMX,在CUBEMX下启动GFX的设计器
13.png

使用设计器设计一个界面,再点击生成代码
14.png

查看生成日志,如下表示完成
15.jpg

a、再切换回MDK,发现要重新载入工程,点YES,再编译,发现上百个错误,这是因为没有添加GFX的lib文件,其实这时候MX已经把需要的GFX文件都拷贝到工程下了
b、添加lib文件后重新编译,还有错误
16.png


c、这是因为MX乱添加了几个BSP文件
17.png

d、都去掉,然后再编译,发现只有2个错误了
18.png

e、这是因为C文件调用CPP文件中的函数,或是CPP文件调用C文件中的函数导致,
GFX官方有说明,
如C文件调用CPP文件中的函数,那么CPP文件中的原函数要加extern "C"前辍,如下。
19.png


如CPP文件调用C文件中的函数,那么CPP文件中要加extern "C"前辍声明这是C函数,如下。
20.png

再次编译工程,发现没有错误了,下载程序,显示正常
21.jpg

最后触摸移植,触摸相关其实已经在工程文件上了,修改内容也简单。
22.png
23.png
编译工程并下载程序,触摸也正常了,总结了下,只要注意上面红色的地方,应该都能移植成功,希望对各位有帮助。

附件上传失败,工程:https://pan.baidu.com/s/10QsJPHsy15aB2-ZTTJsKqQ 基于CubeMX 5.0的TouchGFX移植教程.pdf (1.32 MB, 下载次数: 1936)
GFX_DEMO.rar (4.89 MB, 下载次数: 2951)




评分

参与人数 3金币 +112 收起 理由
music1273 + 10
王海靖 + 2
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-12-4 01:21:21 | 显示全部楼层
非常给力,楼主方便把例子共享下不
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-4 01:23:41 | 显示全部楼层
eric2013 发表于 2018-12-4 01:21
非常给力,楼主方便把例子共享下不

老大还没睡啊,附件上传比较慢,弄了个百度连接
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-12-4 01:25:08 | 显示全部楼层
allyzc 发表于 2018-12-4 01:23
老大还没睡啊,附件上传比较慢,弄了个百度连接

太给力了,兄弟,看到网盘地址了
回复

使用道具 举报

2

主题

569

回帖

575

积分

金牌会员

积分
575
发表于 2018-12-4 07:30:47 | 显示全部楼层
非常给力,图形界面开发又向前迈进了一大步
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2018-12-4 10:09:35 | 显示全部楼层
厉害了,,,,,,
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2018-12-4 10:17:03 | 显示全部楼层
厉害了,楼主
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

39

主题

928

回帖

1050

积分

至尊会员

积分
1050
发表于 2018-12-4 10:37:33 | 显示全部楼层
对待先驱,我一向是支持的。
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-4 11:23:43 | 显示全部楼层
一起讨论一起学习
回复

使用道具 举报

14

主题

109

回帖

151

积分

初级会员

积分
151
发表于 2018-12-4 13:22:35 | 显示全部楼层
厉害,赞一个
回复

使用道具 举报

5

主题

109

回帖

124

积分

初级会员

积分
124
发表于 2018-12-4 14:19:34 | 显示全部楼层
回复

使用道具 举报

7

主题

70

回帖

91

积分

初级会员

积分
91
发表于 2018-12-4 20:47:24 | 显示全部楼层
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2018-12-4 21:07:22 | 显示全部楼层
新的电容屏好像触摸用不了,直接换gt811文件,会报好多错误
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2018-12-4 21:08:39 | 显示全部楼层
eric2013 发表于 2018-12-4 01:21
非常给力,楼主方便把例子共享下不

新的电容屏好像触摸用不了,直接换gt811文件,会报好多错误。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-12-4 21:09:59 | 显示全部楼层
清风徐来 发表于 2018-12-4 21:08
新的电容屏好像触摸用不了,直接换gt811文件,会报好多错误。

你得参考楼主做的替换才行。
回复

使用道具 举报

1

主题

18

回帖

21

积分

新手上路

积分
21
发表于 2018-12-5 08:33:28 | 显示全部楼层
回复

使用道具 举报

17

主题

248

回帖

299

积分

高级会员

积分
299
发表于 2018-12-5 09:10:58 | 显示全部楼层
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2018-12-5 09:12:06 | 显示全部楼层
高手啊 必须感谢
回复

使用道具 举报

8

主题

133

回帖

167

积分

初级会员

积分
167
发表于 2018-12-5 09:18:24 | 显示全部楼层
谢谢分享
回复

使用道具 举报

18

主题

321

回帖

375

积分

高级会员

积分
375
发表于 2018-12-5 09:50:38 | 显示全部楼层
非常酷,楼主威武
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2018-12-5 11:29:42 | 显示全部楼层
                     
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2018-12-5 18:28:33 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2018-12-6 15:01:00 | 显示全部楼层
谁知道这是什么情况
1544079601(1).jpg
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-6 15:05:51 | 显示全部楼层
music1273 发表于 2018-12-6 15:01
谁知道这是什么情况

gpio.c和GPIO.cpp是可以同时存在工程的,帮了好几个群友修改移植错误,还没有发现你这种情况
回复

使用道具 举报

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2018-12-6 15:11:38 | 显示全部楼层
allyzc 发表于 2018-12-6 15:05
gpio.c和GPIO.cpp是可以同时存在工程的,帮了好几个群友修改移植错误,还没有发现你这种情况

会不会是因为我用IAR的原因,能给个联系方式吗?
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2018-12-7 15:41:26 | 显示全部楼层
太棒了,总算有人开始touchgfx
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
发表于 2018-12-8 21:15:22 | 显示全部楼层
想问下,这个touchGFX中的SDL_xxx是啥作用?这个SDL看说明是Simple DirectMedia Layer,这玩意是什么东西?
回复

使用道具 举报

0

主题

46

回帖

46

积分

新手上路

积分
46
发表于 2018-12-9 09:24:52 | 显示全部楼层
赞  楼主V5+1
回复

使用道具 举报

0

主题

10

回帖

10

积分

新手上路

积分
10
QQ
发表于 2018-12-10 08:41:25 | 显示全部楼层
大神给力
回复

使用道具 举报

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2018-12-10 09:16:42 | 显示全部楼层
经验之谈
IAR生成工程的时候有两个文件编译时会提示重名,需要修改成两个不同的名字gpio.c和GPIO.cpp
回复

使用道具 举报

11

主题

38

回帖

71

积分

初级会员

积分
71
发表于 2018-12-10 09:56:02 | 显示全部楼层
5.0支持中文路径吗,前几天下了 发现不支持中文路径又给卸载了
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-10 10:19:46 | 显示全部楼层
zhang062061 发表于 2018-12-10 09:56
5.0支持中文路径吗,前几天下了 发现不支持中文路径又给卸载了

5.0识别中文路径会显示乱码,不要用中文
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-10 10:20:36 | 显示全部楼层
music1273 发表于 2018-12-10 09:16
经验之谈
IAR生成工程的时候有两个文件编译时会提示重名,需要修改成两个不同的名字gpio.c和GPIO.cpp

回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
发表于 2018-12-10 13:40:53 | 显示全部楼层
只能FreeRTOS?ucos不行的么?
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-10 14:18:26 | 显示全部楼层
47小白羊 发表于 2018-12-10 13:40
只能FreeRTOS?ucos不行的么?

可以用其它的OS,但是要自己移植,而CubeMX自动生成代码只支持FreeRTOS
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2018-12-11 09:40:25 | 显示全部楼层
能支持1024X600的屏幕吗?我在stm32cubemx设置最高只能到1000,超过1000都无法设置
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-11 11:42:15 | 显示全部楼层
dreamworks 发表于 2018-12-11 09:40
能支持1024X600的屏幕吗?我在stm32cubemx设置最高只能到1000,超过1000都无法设置

CUBEMX上最大设为1000,代码里面改为1024即可
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2018-12-11 16:44:02 | 显示全部楼层
本帖最后由 dreamworks 于 2018-12-11 16:45 编辑

设置以后,画面还是出不来,不知道这是什么原因?
error.jpg
回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
 楼主| 发表于 2018-12-12 16:08:12 | 显示全部楼层
dreamworks 发表于 2018-12-11 16:44
设置以后,画面还是出不来,不知道这是什么原因?

有几点注意事项;
1、跑TouchGFX的任务RAM空间要分配大一点
2、LTDC和DMA2D的格式要一样,且只能是RGB888或RGB565,且LTDC和DMA2D的中断一定要打开
3、测试时可以写SDRAM刷一屏数据,看颜色是否正确
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2018-12-12 17:18:01 | 显示全部楼层
本帖最后由 dreamworks 于 2018-12-12 17:20 编辑

好的,我来试试看,感谢你的提示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 03:40 , Processed in 0.321170 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表