【LuatOS-air105】input:4*4键盘矩阵

本文档介绍了如何在合宙Air105开发板上配置4*4键盘矩阵,并通过LuatOS提供的库函数进行初始化和事件订阅。代码示例展示了如何初始化键盘接口并监听按键状态变化,同时提到了开发板的GPIO口可用性。硬件连接部分提到键盘接口可能受限,仅能使用特定引脚。
摘要由CSDN通过智能技术生成

前言

硬件准备

合宙air105开发板
4*4键盘矩阵

资料

keyboard接口:https://wiki.luatos.com/api/keyboard.html

根据官方的air105文档,标注了keyboard0/1
在这里插入图片描述
我使用的是4*4,也就是要keyboard(0~7),其他的没有找到

bsp

在这里插入图片描述
LuatOS-master\LuatOS\luat\modules\luat_lib_keyboard.c

demo

LuatOS-master\LuatOS\demo\keyboard\Air105

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "keyboarddemo"
VERSION = "1.0.0"

-- 引入必要的库文件(lua编写), 内部库不需要require
local sys = require "sys"

if wdt then
    --添加硬狗防止程序卡死,在支持的设备上启用这个功能
    wdt.init(15000)--初始化watchdog设置为15s
    sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end


sys.taskInit(function ()
    sys.wait(1000)
    keyboard.init(0, 0x1F, 0x14) --2*3
    sys.subscribe("KB_INC", function(port, data, state)
        -- port 当前固定为0, 可以无视
        -- data, 需要配合init的map进行解析
        -- state, 1 为按下, 0 为 释放
        log.info("keyboard", port, data, state)
    end)
    while true do
        sys.wait(1000)
        log.info("gpio", "Go Go Go", "https//wiki.luatos.com", rtos.bsp())
    end
end)

-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

代码

参照demo编写,只修改init

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "keyboarddemo"
VERSION = "1.0.0"

-- 引入必要的库文件(lua编写), 内部库不需要require
local sys = require "sys"

if wdt then
    --添加硬狗防止程序卡死,在支持的设备上启用这个功能
    wdt.init(15000)--初始化watchdog设置为15s
    sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end


sys.taskInit(function ()
    sys.wait(1000)
    keyboard.init(0, 0xFF, 0xF0) --4*4
    sys.subscribe("KB_INC", function(port, data, state)
        -- port 当前固定为0, 可以无视
        -- data, 需要配合init的map进行解析
        -- state, 1 为按下, 0 为 释放
        log.info("keyboard", port, data, state)
    end)
    while true do
        sys.wait(1000)
        log.info("gpio", "Go Go Go", "https//wiki.luatos.com", rtos.bsp())
    end
end)

-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

剩下就差如何连接了,待确认其他哪些gpio作为keyboard口。

keyboard口

找到电路图
https://cdn.openluat-luatcommunity.openluat.com/attachment/20220110133139675_CORE-Air105-V1.1.pdf
定义了keyboard的0-8口

再结合
在这里插入图片描述

在这里插入图片描述
发现这里只有keyboard0、1可以外接,对应PIN19/20
2/3 对应led
在这里插入图片描述
4对应camera的data7

5/6对应VSYNC/HSYNC
在这里插入图片描述
7对应camera的data5

小结

目前看起来air105,光根据芯片引脚定义名字,从硬件来看只能从芯片飞线出来。当然如果其他的引脚可以配的话能实现,待后续询问下合宙的大佬们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值