关闭

input 子系统

455人阅读 评论(0) 收藏 举报
分类:


----------------------------------------------------------------------------------------------------------------

----------------关于  事件类型,代码,已经报告的值

初始化的时候:

button_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT(EV_SYN);

//set_bit(EV_KEY, button_dev->evbit)//支持EV_KEY事件
set_bit(KEY_1,   button_dev->keybit);
set_bit(KEY_2,   button_dev->keybit);
set_bit(KEY_3,   button_dev->keybit);
set_bit(KEY_4,   button_dev->keybit);
set_bit(KEY_5,   button_dev->keybit);

set_bit(KEY_6,   button_dev->keybit);


在按键中断函数中

input_report_key(button_dev, KEY_1, 0);

input_report_key(button_dev, KEY_1, 1);


KEY_1只是一个逻辑值,自己定义的值。当应用程序去读的时候就发送出去,具体有什么含义自己定义。

struct input_event ev_key;

buttons_fd = open("/dev/event0", O_RDWR);

read(buttons_fd,&ev_key,sizeof(struct input_event));

printf("type:%d,code:%d,value:%d\n", ev_key.type,ev_key.code-1,ev_key.value);

结果如果读取就会打印 其中type就是事件类型EV_KEY,value表示按下还是弹起0或者1,code代表哪一个按键比如KEY_1。





------------------------------------------------------------------------------------------------

--------------初始化

button_dev = input_allocate_device();
if (!button_dev) {
printk(KERN_ERR "Unable to allocate the input device !!\n");
return -ENOMEM;
}
button_dev->name = "s3c2440_button";
button_dev->id.bustype = BUS_RS232;
  button_dev->id.vendor = 0xDEAD;
  button_dev->id.product = 0xBEEF;
  button_dev->id.version = 0x0100;



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:123518次
    • 积分:2480
    • 等级:
    • 排名:第14943名
    • 原创:124篇
    • 转载:19篇
    • 译文:0篇
    • 评论:13条
    最新评论