打印
[应用相关]

MCUDBG结合低功耗使用的相关建议

[复制链接]
702|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hoop|  楼主 | 2020-12-13 15:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hoop 于 2020-12-13 15:51 编辑

我对MCUDBG的功能理解
  一般芯片内核进入调试状态时,外设无时钟不会动作,MCUDBG主要是为调试状态提供时钟,为外设的工作提供条件
MCUDBG结合低功耗(Stop)使用时:
  若Bit位DBG_STOP=1时,不管是处于调试状态还是正常的运行,进入Stop后的系统时钟是HSI,且在退出Stop后如果不重新做时钟初始化的话,系统时钟就固定为HSI;
  若Bit位DBG_STOP=0时,调试进Stop时Link会断线,正常运行进入Stop后的系统时钟会被切换到LSI,且在退出Stop后如果不重新做时钟初始化的话,系统时钟还会被切换到HSI。
原则上,正常进入Stop的话,HSI会被关掉,但是实测当DBG_STOP=1时,HSI被选做了系统时钟。
结论总结:
  由此衍生注意点,如果Stop相关应用需要关注功耗的话,一定要在进入Stop前将DBG_STOP清零,即调用库函数MCUDBG_PeriphDebugModeConfig(MCUDBG_STOP, DISABLE);
  当然推测此结论同样适用于Sleep及Standby,所以如下三句话建议所有低功耗相关应用都尽量去调用执行一次
       MCUDBG_PeriphDebugModeConfig(MCUDBG_SLEEP, DISABLE);
       MCUDBG_PeriphDebugModeConfig(MCUDBG_STOP, DISABLE);
       MCUDBG_PeriphDebugModeConfig(MCUDBG_STANDBY, DISABLE);
特别说明一下:
  前述特点在AT即ST上行为均相同,本贴的目的只是给各位小伙伴们分享下我之前做应用时候的一点心得体会

使用特权

评论回复
沙发
fuqinyyy| | 2020-12-13 17:28 | 只看该作者
学习了,感谢楼主分享经验。

使用特权

评论回复
板凳
串联烧烤| | 2020-12-13 23:19 | 只看该作者
在用sleep的时候又什么注意事项呢 等楼主一个更新

使用特权

评论回复
地板
hoop|  楼主 | 2020-12-17 19:24 | 只看该作者
串联烧烤 发表于 2020-12-13 23:19
在用sleep的时候又什么注意事项呢 等楼主一个更新

“低功耗模式相关注意事项”这篇帖子有对Sleep注意点做了一点说明

使用特权

评论回复
5
明天真的好| | 2020-12-17 20:14 | 只看该作者
学习了,感谢楼主的分享,不错的感觉,这个确实很棒的帖子

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

322

帖子

0

粉丝