zoukankan      html  css  js  c++  java
  • Linux触摸屏驱动测试程序范例【转】

    触摸屏驱动测试

    由于mini2440的触摸屏驱动是基于input子系统的,而input子系统给用户层提供的是input_event结构体,我们主要是在应用层接收这个结构体,然后对其类型进行分类,取出我们需要的数值。

    struct input_event { struct timeval time;

           unsigned short type;  //支持的类型,如EV_ABS

           unsigned short code;   //支持的具体事件,如坐标事件的ABS_X

           unsigned int value;  //值

    };

    测试触摸屏驱动的应用层代码如下

    #include

    #include

    #include

    #include

    #include

    int main(int argc, char *argv[])

    {

           int fd = -1;

           int num;

           size_t rb;

           int version;

           char name[20];

           struct input_event ev;

           int i=0;

           if ((fd = open("/dev/input/event0", O_RDONLY)) < 0)  //打开设备

           {

                  perror("open error");

                  exit(1);

           }

           while(1)

           {

                  rb = read(fd, &ev, sizeof(struct input_event));  //读取设备

                  if (rb < (int)sizeof(struct input_event))  //读取错误

                  {

                         perror("read error");

                         exit(1);

                  }

                  if (EV_ABS==ev.type)                     //读取按键内容

                  {

                  printf("event=%s,value=%d ",ev.code==ABS_X?"ABS_X":ev.code==ABS_Y?"ABS_Y":ev.code==ABS_PRESSURE?"ABS_PRESSURE":"UNKNOWEN",ev.value);     

                  }else{

                  printf("not ev_abs ");        

                  }

           }    

            close(fd);

           return 0;

    }

    编译测试程序test.c

    arm-linux-gcc test.c –o test

    超级终端:

    ./test

    测试结果:(触笔按下触摸屏)

    event=ABS_X, value=505

    event=ABS_Y, value=334

    event=ABS_PRESSURE, value=1

  • 相关阅读:
    入门系列4
    入门系列3
    入门系列2
    入门系列1
    sql进阶-筛选库表中数据为空的表
    sql进阶-删除所有的视图
    sql序列(2) sql语句功能表
    sql序列(5)事务
    sql序列(4)存储过程
    KVM虚拟化介绍
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5107987.html
Copyright © 2011-2022 走看看