触摸屏一般是通过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;
}