linux中input子系统如何配置多个按键

 时间:2026-02-13 14:17:15

1、1.设备驱动入口函数

  在设备驱动入口函数中我们需要做的事:(1)分配一个input_dev 结构体

                    (2)设置这个input_dev 结构体

                    (3)调用input_register_device注册这个input_dev

                    (4)完成硬件相关操作:如注册中断处理函数,添加定时器等

linux中input子系统如何配置多个按键

linux中input子系统如何配置多个按键

2、2.在初始化iinput_dev结构体过程

  主要对其中的如下数组做了初始化,从而来确定该设备支持哪些事件,支持哪些操作。

linux中input子系统如何配置多个按键

3、3.

初始化时首先要确定设备能够产生哪一类事件

      事件的类型如下: 

linux中input子系统如何配置多个按键

4、4.

事件类型的设置主要对evbit[]数组中的相应位做设置: set_bit(EV_KEY, button_dev->evbit);

   然后再确定设备支持该类事件下的哪些操作

      例如:在相对坐标事件下可以劣泉驼支持如下操作

linux中input子系统如何配置多个按键

5、5.在本次按键驱动程序中按键设备产生的事件自然是按键事件,按键事件支持KEY_L、KEY_S、KEY_ENTER、KEY_LEFTSHIFT  4个操作,分别对应 L ,S, enter,shift 

linux中input子系统如何配置多个按键

6、6.

注册输入设备input_register_device()

  这个函数在上一篇博客中已经做了简要分析,这里在提一下input_register_device()中做了哪些事

    (1) 设置同步事件、清除KEY_RESERVED、清除bitmasks中没有提到的位

    (2) 初始化定时器,确定定时器的处理函数。这里定时器与重复上报事件有关,注意在事件类型中有EV_REP事件,设置这个事件在ev_bit中的相应位,就可以重复上报事件。

    (3) 设置getkeycode 和 setkeycode 函数

    (4) device_add, input_dev包含的device结构注册到Linux设备模型中,在sysfs文件系统中可以看到增加了设备屈忌input1

linux中input子系统如何配置多个按键

7、7. 中断处理函数

linux中input子系统如何配置多个按键

8、8.input_event 上报事件函数

linux中input子系统如何配置多个按键

linux中input子系统如何配置多个按键

linux中input子系统如何配置多个按键

9、9.button_dev 和 kbd_handler 的匹配央施过程

linux中input子系统如何配置多个按键

linux中input子系统如何配置多个按键

10、10.kbd->event 函数

linux中input子系统如何配置多个按键

11、11.

实验效果

  3.1 执行hexdump /dev/input/event0

     依次按下 l   s   enter 对应的按键:l 对应0x26  s 对应0x1f  enter对应0x1c  

linux中input子系统如何配置多个按键

linux中input子系统如何配置多个按键

  • installshield_2015 安装教程
  • mysql 8 安装教程
  • 怎么将html转换为ftl
  • win8下git小乌龟怎么用
  • Server2012 IIS8.0 404页面配置
  • 热门搜索
    我爱读书手抄报图片 英语手抄报的内容 清明节手抄报简单漂亮 九九重阳节手抄报 小学生重阳节手抄报 关爱生命文明出行手抄报 手抄报图片大全漂亮 小学生手抄报模板 关于海洋的手抄报 青年节手抄报