agpio_task.lua 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. --[[
  2. @module agpio_task
  3. @summary Air780EPM演示agpio功能模块
  4. @version 1.0
  5. @date 2025.10.21
  6. @author 拓毅恒
  7. @usage
  8. 本文件为Air780EPM开发板演示 AGPIO 功能的代码示例,核心业务逻辑为:
  9. AGPIO与普通GPIO在PSM+模式下的区别演示
  10. 1. 初始化普通GPIO和AGPIO
  11. - 配置普通GPIO1为输出模式并设置为高电平
  12. - 配置AGPIO27为输出模式并设置为高电平
  13. 2. 等待一段时间让GPIO状态稳定
  14. 3. 关闭USB电源以降低功耗
  15. 4. 进入深度休眠模式(PSM+模式),此时RAM 掉电,唤醒后程序从初始状态运行。
  16. 5. 观察结果:通过示波器或逻辑分析仪等设备观察进入PSM+模式后普通GPIO为掉电状态,而AGPIO保持了休眠前的电平状态
  17. ]]
  18. local gpio_number = 1 -- 普通GPIO GPIO号为1,休眠后掉电。
  19. local Agpio_number = 27 -- AGPIO GPIO号为27,休眠后可保持电平。
  20. gpio.setup(gpio_number, 1)
  21. gpio.setup(Agpio_number, 1)
  22. local function enterlowpower()
  23. sys.wait(10000)
  24. -- 关闭USB电源
  25. pm.power(pm.USB, false)
  26. -- 进入PSM+模式
  27. pm.power(pm.WORK_MODE, 3)
  28. end
  29. sys.taskInit(enterlowpower)