linux调试usbtouchsrceen记录

linux调试usbtouchsrceen记录

usbtouchsrceen的板子是网上买的,商家称为免驱,后ubuntu虚拟机测试可以使用。
总的来说没有要太多修改的地方。


1、内核配置 USB Touchscreen Driver
    在make menuconfig之后,通过Device Drivers——>Input device support——>Touchscreens——>USB Touchscreen Driver 然后选取需要的touchscreen类型,可以全部打开。
    
2、查看设备的信息
    一般的系统usb接口都是有打开的,因此可以查看idVendor和idProduct(在插入usb设备时,一般会提示设备接入的位置)
    我的是0x0416, 0x5020

3、源码位置
    /kernel/drivers/input/touchscreen/usbtouchscreen.c
    添加设备信息到id_table,并使用general driver

4、目标目录
    正常情况下,会在/dev/input/下的event0,如果不是可以看看其他event


5、查看结果
    cat /dev/input/event0,触摸屏则会有显示。

6、我的问题
    可以看到/dev/input/event0设备出现,但是cat无数据;
    通过cat /proc/interrupts,可以看见中断计数在增加;
    因此在代码中的usbtouch_irq中,直接打印urb->status,不做条件判断,并打印read_data;
    结果显示nonzero urb status received: -75(数据溢出),并且read_data是有数据的。
    
7、解决
        [DEVTYPE_YHCUST_GENERAL_TOUCH] = {
        .min_xc        = 0x0,
        .max_xc        = 0x7fff,
        .min_yc        = 0x0,
        .max_yc        = 0x7fff,
        .rept_size    = 64,//原为7
        .read_data    = general_touch_read_data,
    }

    还有就是发现坐标0点不是0附近,将数值按16进制打印发现,高低字节反序了;


    

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值