打印
[应用相关]

关于stm32的STOP模式

[复制链接]
504|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wowu|  楼主 | 2024-12-20 11:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.停止模式唤醒后从哪里执行?
停止模式特性:

MCU 在进入停止模式时,会保存当前的上下文(包括程序计数器和寄存器状态)。
当有有效的唤醒事件时,MCU 会退出停止模式,并从进入模式时暂停的指令处继续执行。
执行流程:

唤醒后,MCU 不会重新复位,也不会从主函数 main() 开始,而是直接从调用
HAL_PWR_EnterSTOPMode()

的下一行代码继续。
2. 系统时钟在停止模式中的变化
进入停止模式后,MCU 的时钟系统被部分或完全关闭以节省功耗:

主系统时钟(如 HSE 和 PLL)停止运行。
低功耗时钟(如 HSI 或 LSI)可能保留,用于唤醒事件源(如 RTC、LPTIM)。
唤醒时,MCU 默认使用内部高速时钟(HSI)。
3. 唤醒后为什么需要重新配置时钟?
唤醒后,虽然 MCU 从停止的地方继续执行,但默认的系统时钟可能已经发生了变化:

系统时钟切换为 HSI(默认 8 MHz)。
如果应用需要更高的时钟频率(如 PLL 运行在 72 MHz)或外部时钟(如 HSE),需要重新配置。
直接执行代码的影响:

许多外设(如 UART、SPI 等)依赖于特定的时钟频率。默认切换到 HSI 后,这些外设可能无法正常工作。
因此,唤醒后立即调用 SystemClock_Config(),恢复系统时钟到应用预期的状态。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/colortztzztzt/article/details/144456980

使用特权

评论回复
沙发
suncat0504| | 2024-12-20 19:54 | 只看该作者
加个标志,标明进入STOP模式标志。在恢复后,如果检测到这个标志,就重新设置系统时钟。

使用特权

评论回复
板凳
suncat0504| | 2024-12-20 19:56 | 只看该作者
如果系统时钟能像中断处理那样,在恢复后,把进入STOP模式前的时钟自动恢复就好了。

使用特权

评论回复
地板
公羊子丹| | 2024-12-21 07:45 | 只看该作者
哇,这个解释真清楚!原来停止模式唤醒后是从暂停的地方接着跑啊,学到了!

使用特权

评论回复
5
周半梅| | 2024-12-21 07:45 | 只看该作者
难怪我每次唤醒后外设都出问题,原来是时钟没配置好,多谢提醒!

使用特权

评论回复
6
帛灿灿| | 2024-12-21 07:45 | 只看该作者
好家伙,直接从 HAL_PWR_EnterSTOPMode 的下一行跑,这效率挺高啊!

使用特权

评论回复
7
童雨竹| | 2024-12-21 07:46 | 只看该作者
HSI 默认 8 MHz,这下懂了为啥唤醒后速度变慢了,得赶紧手动调回去!

使用特权

评论回复
8
万图| | 2024-12-21 07:46 | 只看该作者
楼主讲得真细致,时钟配置这块真是容易踩坑的地方,感谢分享!

使用特权

评论回复
9
Wordsworth| | 2024-12-21 07:46 | 只看该作者
有没有推荐的 SystemClock_Config() 示例代码?我自己配置老是报错。

使用特权

评论回复
10
Pulitzer| | 2024-12-21 07:46 | 只看该作者
听说停止模式省电效果挺好,大家有用过更深层次的休眠模式吗?

使用特权

评论回复
11
Bblythe| | 2024-12-21 07:47 | 只看该作者
原来外设出问题是这个原因!唤醒后我一直以为是代码没跑起来。

使用特权

评论回复
12
Uriah| | 2024-12-21 07:47 | 只看该作者
哦豁,我之前没注意过上下文保存的细节,这回彻底明白了!

使用特权

评论回复
13
Clyde011| | 2024-12-21 07:47 | 只看该作者
每次唤醒后先恢复时钟,这算是必须操作吧,不然整个系统都悬了!

使用特权

评论回复
14
花间一壶酒sd| | 2024-12-31 23:15 | 只看该作者
停止模式下,MCU的执行行为和时钟系统的变化是为了最大程度降低功耗。

使用特权

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

本版积分规则

99

主题

4142

帖子

1

粉丝