7寸屏触摸调试

一、硬件电路分析

首先要根据电路图获取如下I2C的信息:

项目Value
接在哪个I2Ci2c2
I2C 寄存器地址0x14
resetGPIO3_16
中断GPIO3_17

二、设备树

1、设备树节点

2、添加pinctr信息

三、驱动移植

1、添加驱动文件

移植整个触摸驱动文件到drivers/input/touchscreen目录下

2、添加Makefile

3、添加Kconfg

4、编译进内核

根目录make menuconfig,勾选相应选项

5、编译

出现编译报错,修改触摸驱动内置的Makefile文件。

编译通过

第一种写法可能会编译报错的原因包括:

(1)配置未启用:如果 CONFIG_TOUCHSCREEN_GT9XX、CONFIG_TOUCHSCREEN_GT9XX_UPDATE、CONFIG_TOUCHSCREEN_GT9XX_DEBUG 中任何一个未启用,相关的 .o 文件就不会被添加到编译列表中,可能导致编译时文件缺失。

(2)缺失依赖项:因为没有明确指定文件的依赖关系,某些目标文件的编译顺序或依赖关系没有被正确处理,可能导致一些文件在不合适的时机被编译,从而产生错误。

四、效果

1、驱动未加载

查看dmesg打印信息

2、定位代码

根据打印信息,发现未正常进入probe函数

3、查看匹配属性,与设备树不一致

4、修改设备树

5、驱动加载报错

6、屏蔽该部分代码

7、重新测试,驱动加载正常

8、设备节点

9、确认驱动可以上报数据

hexdump /dev/input/event0

10、tslib移植

文件系统配置 Qt 插件路径和tslib 环境变量。

11、测试

目前触摸点

正常触摸点:

查看源码得知,被翻转了

屏蔽该代码后,方向正确,触摸原点为屏幕右上角。但是触摸点整体往下偏移较大位置

连续换了两块屏幕,触摸点正常,对比坐标测量结果如下:

从0x8047开始,读186字节,查看IC里面的参数?

./i2ctransfer -f -y 2 w2@0x14 0x80 0x47 r186

触摸偏差的寄存器值:

触摸正常的寄存器值:

不正常屏幕寄回处理

五、正常屏幕问题现象

1、现象一:触摸屏幕时,屏幕闪烁严重

更换屏幕,问题依旧存在,查看屏端的ctp部分和屏本体,背光部分没有任何线路连接的,为什么会影响屏幕?

排查读取坐标后,是不是程序里干了其他事呢?在触摸屏幕时,串口在同步输出,打印大量的触摸坐标

打印触摸点信息可能会导致屏幕闪烁?因为每次触摸事件都会进行打印操作,从而影响绘制的流畅性?

解决办法:定位打印代码,注释该部分,关闭打印

再次测试,触摸屏幕闪烁问题解决

2、现象二:触摸偶尔无效

触摸时,内核正常上报,但会出现qt触摸事件没上报的情况,导致触摸点击偶尔无效

3.3V 通讯接口,400Kbps 通讯速度,上拉电阻 2K

滑动流畅,连续点击还是会出现延迟问题,排查后是qt事件上报的问题。

qt button 判断了按键状态制作按键点击特效。 在板子上连续点击操作会判断为按压状态。造成按键点击事件不触发,使人感觉点击失灵。现在去除判断 解决此异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风从不入睡、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值