Air8000的POWER_ON按键控制
POWER_ON为Air8000的开关机控制管脚,关机状态下将POWER_ON管脚拉低1.5s可以将模块开机。但是在开机状态下却不能以相同拉低的方式将模块关机。
那现在就介绍怎么通过使用GPIO控制,实现Air8000预留的POWER_ON按键,长按关机的功能。
1, 搭建环境
1.1 准备一个Air8000核心板、一根type-c数据线
1.2 下载**Luatools烧录调试工具
1.3 代码下载
选择对应固件 链接:https://gitee.com/openLuat/LuatOS-Air8000/tree/master/core
选择脚本 链接:https://gitee.com/openLuat/LuatOS-Air8000/blob/master/Core_board_demo/gpio/power_on/main.lua
2, 代码展示
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "poweron_demo"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
-- sys库是标配
_G.sys = require("sys")
local poweron_pin = 46 -- 赋值poweron引脚编号
local count=0 -- 五秒内短按三次关机
local function pwrkeycb()
log.info("poweron_key", gpio.get(poweron_pin))
if gpio.get(poweron_pin) == 0 then
count=count+1
sys.timerStart(function()
log.info("计数归零")
count=0
end, 5000)
if count>=3 then
pm.shutdown()
end
end
end
-- function pwroff()
-- log.info("power off!!")
-- pm.shutdown()
-- end
-- local function pwrkeycb() --长按五秒关机
-- log.info("poweron_key", gpio.get(poweron_pin))
-- if gpio.get(poweron_pin) == 1 then
-- sys.timerStop(pwroff)
-- else
-- sys.timerStart(pwroff, 5000)
-- end
-- end
if poweron_pin ~= 255 then
gpio.setup(poweron_pin, pwrkeycb, gpio.PULLUP,gpio.BOTH)
else
log.info("bsp not support")
end
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
3, 烧录程序
开始下载