奕力ILI2510 电容触控方案首次触摸发生连续上报的处理方法
问题:
新开发的应用软件适配奕力ILI2510电容触控屏时,首次触摸操作会触发连续上报,进而产生错误数据。

原因:
1. 通用成熟软件内置了多点事件防抖过滤逻辑(包括时间窗口过滤、触点ID校验、坐标抖动阈值),能够自动合并或丢弃重复事件,因此无异常;而新开发的软件未配置针对多点触控的防抖与重复事件过滤逻辑,无法识别两次间隔极短的同坐标触摸上报,导致接收到两次事件后分别执行加时操作,最终累计加时60分钟(30×2)。从第二次点击开始,触控IC基线已趋于稳定,不再产生重复上报事件,因此后续点击仅正常增加30分钟。
2. 奕力ILI2510的基线抖动区间为80~100ms。在首次手指触碰时(包含手指按下Down与抬起Up两个动作),电容差值波动较大,IC在极短时间间隔内(<50ms)连续上报两组完整的触摸事件(DOWN+UP),且坐标完全一致。换言之,在IC基线抖动区间内,手指的按下与抬起分别触发了两次上报。软件退出后重新进入时,触控输入会话重置,IC重新进行基线采样,首次触碰时仍会产生两次上报;而从第二次及后续点击开始,IC基线已稳定,仅上报一组触摸事件,因此操作正常。
根本对策:
针对新开发软件,新增80ms同坐标点击冷却过滤机制;将计时逻辑调整至抬起事件(TouchUp,即手指抬起时)触发;页面重置时同步清空时间缓存;所有触控输入统一调用同一套校验函数。
临时对策:
1. 通过修改触摸屏驱动固件,在软件启动阶段,强制将ILI2510触控模式从Multi-Touch切换为Mouse模式,依托系统内核的防抖机制规避双击异常问题。切换后,触摸屏界面将持续显示鼠标光标。
Mouse模式说明:ILI2510驱动被封装为标准鼠标HID协议,每次触摸仅上报一次DOWN和一次UP完整点击事件,具备系统级防抖能力,软件仅捕获单次点击。
Multi-Touch模式说明:奕力ILI2510触控IC,上电首次触摸时,电容感应起振存在短暂基线抖动,驱动会连续上报两组独立的Touch Down/Up多点事件(时间间隔短、坐标相同)。
设置方法:启动Windows_Studio_ITS,按顺序操作:Connect→Tuning→System→Interface Mode→2(Mouse)→Write Parameter。

2. 同时通过修改Windows系统下鼠标注册表,通过设定鼠标双击的长度与宽度,将鼠标双击作用的面积与手指点击的面积大小类似,确保手指双击程序图标时可立即启动对应程序。
操作方法:启动MouseRegister,将鼠标双击高度与宽度分别由4调整为100,并按下SET执行。

3. 恢复奕力ILI2510为Multi-touch模式及恢复为正常鼠标指针双击作用面积的方法:


