alex_lyf的笔记,专注于嵌入式系统 https://bbs.21ic.com/?499426 [收藏] [复制] [RSS]

日志

Android 4.0 触摸屏驱动调试记录

已有 5917 次阅读2012-1-1 17:02 |个人分类:Linux驱动|系统分类:嵌入式系统


软件平台:Android 4.0


问题描述:


 今天在调试电容屏驱动,将Android 2.3的驱动代码直接移植到4.0中,发现触摸屏不能用;


由于硬件已事先在Android2.3上验证过,首先排除了硬件上的问题;触摸屏驱动也在2.3平台上能正


常使用,为什么移植到4.0上就出现问题了呢?


 


测试步骤:


1、getevent查看事件发现事件上报正常;


2、加串口打印,发现触摸点坐标也正常;


难道底层没问题,而是应用层有问题了?这时突然想起前几日在4.0平台上移植过电阻屏驱动,为什么


电阻屏能正常工作而电容屏却不行了?看来问题还在触摸屏驱动里面。


 


通过对比两者驱动代码,找到了问题的原因:


原来在电阻屏驱动中,每次上报事件结束时都有报如下两句:


input_report_key( input_dev , BTN_TOUCH , 1);    // pressed


input_report_key( input_dev , BTN_TOUCH , 0);    // realse


在电容屏驱动中却没有,加上之后电容屏工作正常。


 


之后在网上搜索了一下才知道Andorid 的 touchscreen 事件必须要有  BTN_TOUCH 才可以。


所以初始化的时候加上:


tablet_dev->keybit[BIT_WORD (BTN_TOUCH)] = BIT_MASK (BTN_TOUCH);


 报事件的时候加上


input_report_key( input_dev , BTN_TOUCH , 1);    // pressed


input_report_key( input_dev , BTN_TOUCH , 0);    // realse


至于为什么会这样现在还没来得及分析,待以后弄清楚了补上。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)