wudingqinglang
Vivian LSR
采纳率0%
2021-05-04 19:00

arm开发板读取触摸屏坐标失败

开发板型号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;
}

 开发板运行的结果如下:

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

相关推荐