gpio_toggle_task.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. --[[
  2. @module gpio_toggle
  3. @summary 波形翻转功能模块
  4. @version 1.0
  5. @date 2025.10.21
  6. @author 拓毅恒
  7. @usage
  8. 本文件为 GPIO 翻转(脉冲)输出的代码示例,核心业务逻辑为:
  9. GPIO 快速翻转测速与波形观测
  10. 1. 配置 GPIO5 为输出模式并上拉初始化;
  11. 2. 在任务中循环调用 gpio.pulse() 按给定模式输出脉冲序列;
  12. - 演示模式为 0xA9(二进制 10101001),每次输出 8 组电平变化;
  13. 3. 使用示波器或逻辑分析仪连接到 GPIO5,观察翻转波形与频率,翻转一次所需时间大概 50ns;
  14. 4. 可根据需要修改 `test_gpio_number`、`0xA9`(翻转模式)和 `8`(组数),以测试不同引脚和模式;
  15. 5. 注意:高频翻转请勿直接驱动重负载,推荐用于逻辑检测或带限流的 LED 演示。
  16. ]]
  17. local test_gpio_number = 5
  18. gpio.setup(test_gpio_number, 0, gpio.PULLUP)
  19. local function gpiotoggletask()
  20. sys.wait(100)
  21. while true do
  22. sys.wait(100)
  23. -- 通过GPIO5脚输出输出8组电平变化
  24. -- 0xA9就是输出的电平高低状态,即 10101001
  25. gpio.pulse(test_gpio_number, 0xA9, 8, 0)
  26. log.info("gpio----------->pulse")
  27. end
  28. end
  29. sys.taskInit(gpiotoggletask)