gpio_input_test.lua 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --[[
  2. @module gpio_input_test
  3. @summary GPIO输出测试模块
  4. @version 1.0
  5. @date 2025.07.01
  6. @author Jensen
  7. @usage
  8. 使用Air780EGH核心板测试GPIO输入功能,主要流程为获取指定IO口的输入电平,根据高电平状态,点亮外接LED灯;根据低电平状态,熄灭外接LED灯
  9. ]]
  10. -- 配置外接LED灯的GPIO端口
  11. local led_io_number = 27
  12. -- 配置输入检测的GPIO端口
  13. local input_io_numble = 24
  14. function test_gpio_input_func()
  15. local input_level
  16. -- 配置LED GPIO为推挽输出模式,第二参数1表示初始为输出高电平
  17. gpio.setup(led_io_number, 1)
  18. -- 配置输入检测的GPIO为输入模式, 第二参数nil表示输入模式,第三参数nil表示浮空输入(未检测到电平时 电平状态不确定)
  19. gpio.setup(input_io_numble, nil, nil)
  20. -- 配置输入IO防抖动参数:50ms
  21. gpio.debounce(input_io_numble, 50)
  22. while 1 do
  23. -- 获取IO电平,并打印
  24. input_level = gpio.get(input_io_numble)
  25. log.info("GPIO", "input level", input_level)
  26. -- 根据获取的电平来设置LED
  27. gpio.set(led_io_number, input_level)
  28. -- 延时500ms,循环上面的流程
  29. sys.wait(500)
  30. end
  31. end
  32. --创建并且启动一个task
  33. --运行这个task的主函数 test_gpio_input_func
  34. sys.taskInit(test_gpio_input_func)