TouchGFX在阿波罗STM32F767上的移植

2019-07-20 00:55发布

本帖最后由 lsmvc 于 2019-3-22 23:46 编辑

    最近一段时间一直在看TouchGFX,在ST的官网上下载了TouchGFX Designer,参考这软件上自带的demo作了一些练习,熟悉了一下这个软件的一些基本操作以及一些常用的小工具。软件上的Deom基本上都是在ST的Demo板上运行的,在个人的板子上无法直接运行,需要重新对自己板子进行配置因为手上有块阿波罗F767开发板,因此试着通过CoubeMX配置一下开发板,实现在自己的开发板上运行TouchGFX。   关于CubeMX的配置这里就不再多说了,下载下面的例程对应着进行配置就可以了,下面说几个需要注意的地方:   1. 在通过CoubeMX单片机的LTDC进行配置时,需要根据原理图对部分引脚进行调整。
   2. 关于触摸屏的驱动移植,因为开发板上触摸芯片接口连接到单片机上的接口不是I2C接口,因此无法通过Cube MX直接进行配置,需要移植原子的ctiic.c文件和delay.c文件;除两个文件外,还需要在F7固件库中移植对应的BSP文件,我用的显示屏未7寸的1024*600分辨率的显示屏,触摸驱动芯片为FT5426,参考F7固件库STM32CubeF7固件包STM32CubeF7固件包STM32Cube_FW_F7_V1.15.0DriversBSPComponents中的ft5336程序,其中的寄存器和FT5426寄存器基本相同;移植文件:(1)STM32Cube_FW_F7_V1.15.0DriversBSPSTM32F7508-Discovery中的stm32f7508_discovery_ts.c文件;(2)STM32CubeF7固件包STM32Cube_FW_F7_V1.15.0DriversBSPSTM32F769I-Discovery目录下的stm32f769i_discovery.c文件(或者STM32CubeF7固件包STM32Cube_FW_F7_V1.15.0DriversBSPSTM32F7508-Discovery目录下的stm32f7508_discovery.c)。移植时需对该文件中调用的I2C底层驱动函数进行修改。(3)在STM32F7TouchController.cpp中,将void STM32F7TouchController::init()和bool STM32F7TouchController::sampleTouch(int32_t& x, int32_t& y)函数中注释掉的代码放开。


在移植过程有参考别人的贴子(使用手机浏览器打开):http://www.openedv.com/forum.php?mobile=2&mod=viewthread&tid=288362
参考设计资源:http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=619776&extra=page%3D&page=1


由于图片占用内存较大,因此在在CoubeMX配置时将分辨率设置为了800*480,减少空间的占用。如何将显示的图片 文字等存放到外部存储还未能实现,TouchGFX Designer好像仅支持ST官方的Demo板。



demo程序下载地址:链接:
https://pan.baidu.com/s/1o0oW5C7HCHELfg_MxoTkFw
提取码:bfp6
复制这段内容后打开百度 {MOD}手机App,操作更方便哦





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
lixiaogang
1楼-- · 2019-07-21 06:13
lsmvc 发表于 2019-4-9 23:57
嗯,但是我有个问题想请教一下,修改sct文件后编译程序会生成一个extflash.bin的文件吧,那你是如何将该 ...

第一,你的触摸移植是由问题的,你的delay函数用的不对,也没有初始化。由于你只有一个任务所以没有体现出错误,如果你多建几个任务就会出现任务切换失败,进而死机。delay 要使用freeRTOS的定制版,而且要初始化,才可以使用。
第二,至于如何将extflash.bin中的内容写入FLASH,我的理解是再我们编写external Loader的过程中实际是编写定制loader,这个loader会首先载入内存,然后运行,这个loader会按照extflash.bin的内容将需要写入外部Flash的内容写入QSPI FLASH中。所以关键还是编一个external Loader。
lsmvc
2楼-- · 2019-07-21 10:58
 精彩回答 2  元偷偷看……
月下良缘
3楼-- · 2019-07-21 16:57
谢谢分享!
lixiaogang
4楼-- · 2019-07-21 18:38
lsmvc 发表于 2019-5-9 23:14
工程中的延时函数用的是原子例程中的延时函数,在CubeMX配置的时候Free RTOS和HAl库使用的都是systick, ...

好的,解决了就好。不然是个大隐患。
还有,你的哪个外部烧写算法搞得咋样了。搞出来共享一下啦。我搞来搞去,还是有问题,感觉已经不是简单算法的问题,而是和TOUCHgfx配合的问题。
ling52yu
5楼-- · 2019-07-21 23:44
 精彩回答 2  元偷偷看……

一周热门 更多>