Keypad(键盘矩阵)
## 简介
Air722UG支持3X2键盘矩阵,可以在LuatOS-Air二次开发的方式应用,但注意AT版本不支持键盘功能。
## API说明
|API接口| 描述|
| --- | --- |
| powerKey.setup(longPrd, longCb, shortCb)|开机键功能配置|
| rtos.on(msgId, cbFnc)|注册按键消息处理函数|
[常用api_1介绍](https://doc.openluat.com/wiki/21?wiki_page_id=2288)
[常用api_2介绍](https://doc.openluat.com/wiki/21?wiki_page_id=2247)
## 示例
### 按键消息处理函数
```lua
local function keyMsg(msg)
--msg.key_matrix_row:行
--msg.key_matrix_col:列
--msg.pressed:true表示按下,false表示弹起
log.info("keyMsg",msg.key_matrix_row,msg.key_matrix_col,msg.pressed)
end
```
### 注册按键消息处理函数
```lua
--注册按键消息处理函数
rtos.on(rtos.MSG_KEYPAD,keyMsg)
--初始化键盘阵列
--第一个参数:固定为rtos.MOD_KEYPAD,表示键盘
--第二个参数:目前无意义,固定为0
--第三个参数:表示键盘阵列keyin标记,例如使用了keyin0、keyin1、keyin2、keyin3,则第三个参数为1<<0|1<<1|1<<2|1<<3 = 0x0F
--第四个参数:表示键盘阵列keyout标记,例如使用了keyout0、keyout1、keyout2、keyout3,则第四个参数为1<<0|1<<1|1<<2|1<<3 = 0x0F
rtos.init_module(rtos.MOD_KEYPAD,0,0x0F,0x0F)
```
## 常见问题
**为什么按下按键时没反应?**
看下按键引脚是否与模块引脚是否接对?键盘是不是ok?