testPm.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132
  1. --- 模块功能:休眠功能测试.
  2. -- @author openLuat
  3. -- @module pm.testPm
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.27
  7. module(...,package.seeall)
  8. require"pm"
  9. --[[
  10. 关于休眠这一部分的说明:
  11. 目前的休眠处理有两种方式,
  12. 一种是底层core内部,自动处理,例如tcp发送或者接收数据时,会自动唤醒,发送接收结束后,会自动休眠;这部分不用lua脚本控制
  13. 另一种是lua脚本使用pm.sleep和pm.wake自行控制,例如,uart连接外围设备,uart接收数据前,要主动去pm.wake,这样才能保证前面接收的数据不出错,当不需要通信时,调用pm.sleep;如果有lcd的项目,也是同样道理
  14. 不休眠时功耗至少30mA左右
  15. 休眠后,飞行模式不到1mA,非飞行模式的功耗还没有数据(后续补充)
  16. 如果不是故意控制的不休眠,一定要保证pm.wake("A")了,有地方去调用pm.sleep("A")
  17. ]]
  18. pm.wake("A") --执行本句后,A唤醒了模块
  19. pm.wake("A") --执行本句后,A重复唤醒模块,实际上没什么变化
  20. pm.sleep("A") --执行本句后,A休眠了模块,lua部分已经没有功能唤醒模块了,模块是否休眠由core决定
  21. pm.wake("B") --执行本句后,B唤醒了模块
  22. pm.wake("C") --执行本句后,C唤醒了模块
  23. pm.sleep("B") --执行本句后,B休眠了模块,但是lua部分还有C已经唤醒了模块,模块并不会休眠
  24. pm.sleep("C") --执行本句后,C休眠了模块,lua部分已经没有功能唤醒模块了,模块是否休眠由core决定