开发板型号imx6ULL
我是想要读取手指在屏幕上点击的坐标,但是以上方法一直无法成功,经查,发现是一直无法进入if语句,即event.code一直不等于0
但是为什么在使用触摸屏时已经确定type为3,但code有50????
我非常确定触摸屏在event1
运用hexdump /dev/input/event1能够成功打印
代码如下
int anxia(int dev_fd,int* x,int* y)
{
struct input_event event;
printf("24\n");
while(1)
{
read(dev_fd,&event,sizeof(struct input_event));
printf("%d\n", EV_ABS);
printf("%d\n", event.type);//这两个问题不大,可以相等
printf("--------1\n");
printf("%d\n", event.code);
printf("%d\n",ABS_X);
printf("---------2---\n");
if(event.type == EV_ABS && event.code == ABS_X)//event.code一直不为0
{
printf("29\n");
*x = event.value;
}
if(event.type == EV_ABS && event.code == ABS_Y)
{
printf("34\n");
*y = event.value;
}
}
}
int main(int argc, char const *argv[])
{
int x ,y ;
int x1 ;
int y2 ;
int dev_fd = open("/dev/input/event1",O_RDONLY);
if(dev_fd == -1)
{
perror("open dev error");
return -1;
}
printf("%d\n", dev_fd );
while(1)
{
anxia(dev_fd,&x,&y);
sk(dev_fd,&x1,&y2);
printf("---------------------\n");
}
return 0;
}
开发板运行的结果如下: