input core输入事件 矩阵键盘 映射 原理分析

//这个是矩阵键盘映射表,使用内核定义的宏KEY()来建立

//#defineKEY(row, col,val) ((((row)& (MATRIX_MAX_ROWS - 1)) << 24) |\

//(((col)& (MATRIX_MAX_COLS - 1)) << 16) |\

//((val)& 0xffff))

//从上面的定义来看KEY用于唯一确认一个值,用于将(row,col,val)转换为一个单一个32位的值。

//这样存储起来,比较节省空间。高高字节用于存储行号,高低字节用于存储列号,低高和低低字节用于保存值。

//如此一来,将二维坐标(x,y)及值val转换为一个单一的32int数据。

//但是取出来的时候还得使用特殊的宏来操作。

//将扫描码映射为内核定义的标准键值,以方便上层应用程序使用。

staticintmx6sl_evk_keymap[] = {

KEY(0,0, KEY_SELECT), //映射矩阵(0,0)处按键为内核标准的KEY_SELECT键码。

KEY(0,1, KEY_BACK),

KEY(0,2, KEY_F1), //映射矩阵(0,2)处按键为内核标准的KEY_F1键码。

KEY(0,3, KEY_F2), //映射矩阵(0,3)处按键为内核标准的KEY_F2键码。

//内核自己定义的键码在linux/input.h中定义。

KEY(1,0, KEY_F3),

KEY(1,1, KEY_F4),

KEY(1,2, KEY_F5),

KEY(1,3, KEY_MENU),


KEY(2,0, KEY_PREVIOUS),

KEY(2,1, KEY_NEXT),

KEY(2,2, KEY_HOME),

KEY(2,3, KEY_NEXT),


KEY(3,0, KEY_UP),

KEY(3,1, KEY_LEFT),

KEY(3,2, KEY_RIGHT),

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值