打印
[STM32F4]

关于F429Discovery CubeMX生成TouchGFX项目中触摸的移植

[复制链接]
3129|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
admvip|  楼主 | 2019-1-25 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
随着TouchGFX的免费开放,F429 Discovery作为TouchGFX支持的入门级开发板,也可以体验TouchGFX嵌入式GUI惊艳的效果了,用最新的CubeMX5.0自带的固件包的Dome演示项目文件,可以下载到F429 Discovery开发板体验一下。在体验过后,自然就是想模仿例程做一个自己的GUI来体会一下TouchGFX的强大功能。用CubeMX5.0可以方便的生成TouchGFX的项目模板,这里不再详述。在生成模板后,已经编译,会发现CubeMX埋了好多的坑,竟然弹出了上百条的错误信息,借鉴前人高手的经验,手动添加TouchGFX Lib库,去掉一些Cube自作聪明添加的一些没用的.c文件,然后将一些CPP函数用extern "C"声明一下,可以正常编译通过了。不过有一个STMEP811.c的文件是触摸驱动,这个不能去掉,但是加上的话,又会出现一个错误提示,导致编译无法通过,而显示屏的触摸功能是必须要有的,这个坑搞了一个下午,终于解决了。
原来CubeMX在生成项目模板的时候少添加了部分文件,其中就包括触摸驱动文件,将文件手动添加进项目就完美解决了。下面是项目修改的步骤:
1、在STM32F4TouchController.cpp文件中将预先注释掉的两段触摸语句恢复。
     BSP_TS_Init(LCD_GetXSize(), LCD_GetYSize());

     TS_StateTypeDef state;
     BSP_TS_GetState(&state);
     if (state.TouchDetected)
     {
        x = state.X;
        y = state.Y;
        return true;
      }
        注意修改state.x和y为大写X、Y

2、将CubeMX F4 discovery的驱动目录整个复制到项目文件的BSP目录,并添加stm32f429i_discovery.c和stm32f429i_discovery_ts.c到项目文件,同时在项目设
置里添加相应的头文件路径
C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.23.0\Drivers\BSP\STM32F429I-Discovery   //这是目标目录位置,根据个人电脑略有不同

3、注释或删除BoardConfigury.cpp中的一个LCD延时函数。
/*void LCD_Delay(uint32_t Delay)
{
  HAL_Delay(Delay);
}*/


至此,触摸驱动添加完毕,点编译,工程顺利编译通过,烧入F429 Discovery开发板,显示、触摸工作正常。

注:LCD时钟在主频168M下,最高可以到18M,再高就会花屏,官方推荐是设置为6M。
沙发
stm32jy| | 2019-1-25 19:06 | 只看该作者
没有界面的图片展示吗?

使用特权

评论回复
板凳
stm32jy| | 2019-1-25 19:06 | 只看该作者
传几张让大家看下呗

使用特权

评论回复
地板
stm32jy| | 2019-1-25 19:06 | 只看该作者
看下有多惊艳啊

使用特权

评论回复
5
mmuuss586| | 2019-1-25 20:54 | 只看该作者
不错,感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

87

帖子

1

粉丝