keypad(键盘矩阵)指南
keyPad
簡介
Air724UG支持6X6鍵盤矩陣,可以在luat二次開發的方式應用,但注意AT版本不支持鍵盤功能。
API說明
| API接口 | 描述 |
|---|---|
| powerKey.setup(longPrd, longCb, shortCb) | 開機鍵功能配置 |
常用api_1介紹
常用api_2介紹
示例
1.創建一個tKeypad表,儲存所有按鍵值(16個鍵盤元素+1個開關機鍵元素)
--每個元素的索引為行列值拼接而成的字符串,值為按鍵名的字符串
--例如:按鍵名為"1"的行值為5,列值為3,則["53"] = "1"
local tKeypad =
{
["53"] = "1",["52"] = "2",["51"] = "3",["50"] = "A",
["43"] = "4",["42"] = "5",["41"] = "6",["40"] = "B",
["33"] = "7",["32"] = "8",["31"] = "9",["30"] = "C",
["23"] = "*",["22"] = "0",["21"] = "#",["20"] = "D",
["255255"] = "開關機"
}
2.定義某個keyName按鍵的長按下消息處理函數
local function keyLongPressTimerCb(keyName)
log.info("keypad.keyLongPressTimerCb",keyName)
3.定義一個按鍵消息處理函數
--按鍵消息處理函數
local function keyMsg(msg)
--保存按鍵名
--msg.key_matrix_row:行索引
--msg.key_matrix_col:列索引
local keyName = tKeypad[msg.key_matrix_row..msg.key_matrix_col]
log.info("keyMsg",msg.key_matrix_row,msg.key_matrix_col,msg.pressed,keyName)
if msg.pressed then
--第一個參數:keyName按鍵的長按消息處理函數
--第二個參數:超時時間為3秒
--第三個參數:按鍵名
sys.timerStart(keyLongPressTimerCb,300,keyName)
end
end
4.注冊按鍵消息處理函數
rtos.on(rtos.MSG_KEYPAD,keyMsg)
5.初始化鍵盤陣列
--第一個參數:固定為rtos.MOD_KEYPAD,表示鍵盤
--第二個參數:目前無意義,固定為0
--第三個參數:鍵盤陣列keyin標記,例如使用了keyin2、keyin3、keyin4、keyin5,則第三個參數為1<<2|1<<3|1<<4|1<<5 = 0x3C 行
--第四個參數:鍵盤陣列keyout標記,例如使用了keyout0、keyout1、keyout2、keyout3,則第四個參數為1<<0|1<<1|1<<2|1<<3 = 0x0F 列
rtos.init_module(rtos.MOD_KEYPAD,0,0x3c,0x0F)
6.把鍵盤陣列keyin標記和keyout標記軟排線接口插入模塊相對印引腳,比如鍵盤的keyin2對印模塊的keyin2腳
7.在了解并修改了DEMO后將demo和對應的底包下載到開發板,下載的方式這里不詳細說明請參考環境搭建中的燒錄章節。
8.下載完成后重啟,我們隨便按一個按鍵,可以在luatools工具上看到打印的數據。
比如按下1鍵時:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-FSeNWzYu-1624771263903)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210328182956060_微信截圖_20210328161906.png “undefined”)]
按下A鍵時:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-79nptfPX-1624771263906)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210328183038808_微信截圖_20210328163505.png “undefined”)]
常見問題
為什么按下按鍵時沒反應?
看下按鍵引腳是否與模塊引腳是否接對?鍵盤是不是ok?
相關資料以及開發板購買鏈接
Air724UG開發板
Air724 開發板使用說明
總結
以上是生活随笔為你收集整理的keypad(键盘矩阵)指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP UI5库文件的加载细节探讨
- 下一篇: MSYS以及MinGW安装