嵌入式Linux中TP调试笔记

2019-07-13 00:03发布

触摸屏一般是通过IIC来传输触摸点的坐标给Linux内核,一般而言,其步骤是:当人触摸触摸屏时,触摸屏会产生一个中断信号给Linux内核,内核接收到中断信号后便会通过IIC去触摸IC里读取数据,因此调试TP驱动时,应该进行下列步骤(这里我以ft6x6为例):步骤一:先通过dmesg来查看触摸驱动是否已经成功初始化,一般而言,在init函数里应该有printk或类似的函数来进行打印来判断i2c_add_driver函数是否成功地把tp驱动添加到IIC总线上;步骤二:使用命令cat /proc/interrupts查看设备的中断IO口和其他信息,一般而言,如果设备中断出发后,当TP被触摸后与之对应的IO的数值会改变,如下图:

执行两次cat /proc/interrupts,可以看到数值由0变为130了,说明其识别到了中断信号,而且其终端端口为GPIOB。步骤三:参看具体的中断数据,使用命令:cat  /dev/input/event0里数据,如果每点击一次TP便有数据显示表示TP已与MCU成功通信起来了。步骤四:使用网上的一份TP代码来查看具体的坐标:#include #include static int event0_fd = -1; struct input_event ev0[64]; static int handle_event0() { int button = 0, realx=0, realy=0, i, rd; rd = read(event0_fd, ev0, sizeof(struct input_event)* 64); if(rd < sizeof(struct input_event)) return 0; for(i=0;i 0) { close(event0_fd); event0_fd = -1; } return 0; }