键盘接口 ======== 作者:金艺 概述 ---- Air724UG支持6X6键盘矩阵,可以在luat二次开发的方式应用,但注意AT版本不支持键盘功能。如下是键盘管脚列表: 管脚定义 -------- +-----------+-----------+-----------+-----------+-----------+-----------+ | 管脚名 | 管脚 | I/O | 管脚描述 | 电气特性 | 备注 | +===========+===========+===========+===========+===========+===========+ | KEYIN0 | 66 | I | 扫描 | VIL | 电 | | USB_BOOT | | | 键盘输入0 | min=-0.3V | 压域是V_G | | | | | | VI | LOBAL_1V8 | | | | | | Lmax=0.6V | 不 | | | | | | VI | 用则悬空 | | | | | | Hmin=1.2V | | | | | | | VI | | | | | | | Hmax=2.0V | | | | | | | VOHmin= | | | | | | | V_GLOBA | | | | | | | L_1V8*0.7 | | | | | | | VOLmax= | | | | | | | V_GLOBA | | | | | | | L_1V8*0.3 | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYIN1 | 91 | I | 扫描 | 同上 | 同上 | | | | | 键盘输入1 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYIN2 | 92 | I | 扫描 | 同上 | 同上 | | | | | 键盘输入2 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYIN3 | 93 | I | 扫描 | 同上 | 同上 | | | | | 键盘输入3 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYIN4 | 94 | I | 扫描 | 同上 | 同上 | | | | | 键盘输入4 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYIN5 | 95 | I | 扫描 | 同上 | 同上 | | | | | 键盘输入5 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT0 | 96 | O | 扫描 | 同上 | 同上 | | | | | 键盘输出0 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT1 | 97 | O | 扫描 | 同上 | 同上 | | | | | 键盘输出1 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT2 | 98 | O | 扫描 | 同上 | 同上 | | | | | 键盘输出2 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT3 | 99 | O | 扫描 | 同上 | 同上 | | | | | 键盘输出3 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT4 | 89 | O | 扫描 | 同上 | 同上 | | UART3_RXD | | | 键盘输出4 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ | KEYOUT5 | 90 | O | 扫描 | 同上 | 同上 | | UART3_TXD | | | 键盘输出5 | | | +-----------+-----------+-----------+-----------+-----------+-----------+ 注意: ``1. KEYIN0 复用为USB_BOOT ,开机过程中如果上拉了KEYIN0会进入下载模式。`` ``2. KEYPAD接口的所有管脚不能复用为GPIO`` 参考设计 -------- |image1| 注意: ``1. 键盘走线请尽量远离天线,以免对天线造成干扰。`` ``2. 键盘走线串联1K电阻以做ESD防护`` -------------- AT版本相关控制指令 ~~~~~~~~~~~~~~~~~~ 不支持 -------------- LUAT开发相关接口 ~~~~~~~~~~~~~~~~ KEYPAD使用流程: 1.注册按键消息处理函数: :: --注册按键消息处理函数 --keyMsg为按键消息的回调函数,处理按键消息 rtos.on(rtos.MSG_KEYPAD,keyMsg) \` 2.初始化键盘设置 :: --初始化键盘阵列 --第一个参数:固定为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)--如果要检测powerkey键,最后两个参数设置为0xFF 3.回调函数处理按键消息 :: 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 相关资料以及购买链接 -------------------- 相关开发板购买链接 `Air724UG开发板 `__ `Air724 开发板使用说明 `__ 常见问题 -------- - 为什么KEYIN0的按键在开机时被按下后就会不开机。 答:因为KEYIIN0信号复用为是USB_BOOT,如果被按下就会进入下载模式,就进入不了开机流程。只需重新断电开机就能恢复 .. |image1| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200630230109642_key.png