gpio_input_task.lua 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. --[[
  2. @module gpio_input_task
  3. @summary GPIO输入检测与LED联动示例
  4. @version 1.0
  5. @date 2025.10.21
  6. @author 拓毅恒
  7. @usage
  8. 本文件为GPIO输入检测功能的代码示例,核心业务逻辑为:
  9. 1. 初始化GPIO7为输入模式(可用杜邦线接稳压电源,高电平接3.3V,低电平接地)
  10. 2. 初始化GPIO5为输出模式,默认高电平
  11. 3. 启用输入消抖,消抖时间50 ms
  12. 4. 每500 ms读取一次GPIO7电平
  13. 5. 打印并将采集到的电平设置到GPIO5
  14. ]]
  15. -- 配置gpio7为输入模式
  16. -- 配置GPIO5为输出模式
  17. local inputpin = 7
  18. local ledpin = 5
  19. gpio.setup(inputpin, nil, gpio.PULLDOWN)
  20. gpio.setup(ledpin, 1)
  21. gpio.debounce(inputpin, 50)
  22. --GPIO7检测到有高低电平输入后,会返回GPIO7当前获取到的电平为高还是低,高返回值为1,低返回值为0
  23. --将这个返回值,传给GPIO5,为0 则GPIO5输出低电平,为1则输出高电平
  24. local function controlgpio()
  25. local level = 0
  26. while true do
  27. level = gpio.get(inputpin)
  28. log.info("gpio","set netled level: ",level)
  29. gpio.set(ledpin, level)
  30. sys.wait(500)
  31. end
  32. end
  33. sys.taskInit(controlgpio)