打印
[GUI]

【STM32H750B-DK评测】触摸的来龙去脉

[复制链接]
974|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinyi7016 于 2022-8-26 10:00 编辑

@21小跑堂


开发板上的屏是带的电容触摸功能的。当添加的控件,是有交互属性的控件时,会自动与触摸驱动关联。

我们使用开发板模版建的工程,触摸屏的驱动都是已经生成好的。不过对于自己设计的板子,还是有必要了解一下触摸驱动的实现的。
开发板上的触摸驱动使用的芯片是:FT5336
相应的源码有:ft5336_reg.c、ft5336.c、stm32h750b_discovery_ts.c



在stm32h750b_discovery_ts.c中的函数BSP_TS_GetState来读取并获取触摸的相应的状态,
而这个函数与C++的关联,是在STM32TouchController类中的sampleTouch方法。
如果使用其他的触摸芯片,也是要在这个方法中添加相应的代码实现。



STM32TouchController的调用,是在ToucGFXConfiguration.cpp中。




tc作为hal的一个参数,传递到TouchGFXHAL的初始化程序。

把这个界面,直接烧写到开发板上,当按下这些button时,会有相应的按下的反馈。
其实,当我们新建工程,选择我们的开发板型号时,相应的底层驱动的代码与关联就已经生成了。那当是另外自己项目中的板子时,是不会自动生成相应的驱动的。所以,有必要分析一下TouchGFX的触摸驱动。
开发板上的是电容触摸屏,使用IIC4接口进行通讯。


当打开ico文件时,发现并没有在ico的配置文件中看到对IIC4的配置
那触摸数据是从哪里来的呢?



其实这里的配置是在FT5336_Probe函数内的。
也就是与BSP_TS_Init的配置在一起,而没有单独进行配置。
而相应的定义,是在stm32h750b_discovery_bus.c中的。



最上层,就是void STM32TouchController::init()调用的了。
这就又回到了文章最开始的STM32TouchController类那里的调用了。

可以看到整个工程的代码结构是分层处理的。C++算上应用层,调用底层的C文件中的函数。TouchGFX完全使用C++实现。









使用特权

评论回复
沙发
robincotton| | 2022-8-25 09:40 | 只看该作者
感觉纯c的lvgl不错。   

使用特权

评论回复
板凳
jackcat| | 2022-8-25 12:53 | 只看该作者
这个不是添加接口就行了吗   

使用特权

评论回复
地板
skyred| | 2022-8-25 20:43 | 只看该作者
都是封装好的?

使用特权

评论回复
5
mmbs| | 2022-9-8 09:35 | 只看该作者
能够跑神经网络的算法吗

使用特权

评论回复
6
ccook11| | 2022-9-8 11:34 | 只看该作者
stm32h750性能真是强大

使用特权

评论回复
7
minzisc| | 2022-9-8 20:36 | 只看该作者
使用总线读取触摸数据的吗

使用特权

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

本版积分规则

131

主题

1336

帖子

12

粉丝