1.停止模式唤醒后从那里执行?
- 停止模式特性:
- MCU 在进入停止模式时,会生存当前的上下文(包罗步调计数器和寄存器状态)。
- 当有有效的唤醒变乱时,MCU 会退出停止模式,并从进入模式时暂停的指令处继续执行。
- 执行流程:
- 唤醒后,MCU 不会重新复位,也不会从主函数 main() 开始,而是直接从调用的下一行代码继续。
2. 体系时钟在停止模式中的变革
进入停止模式后,MCU 的时钟体系被部分或完全关闭以节省功耗:
- 主体系时钟(如 HSE 和 PLL)停止运行。
- 低功耗时钟(如 HSI 或 LSI)可能保留,用于唤醒变乱源(如 RTC、LPTIM)。
- 唤醒时,MCU 默认利用内部高速时钟(HSI)。
3. 唤醒后为什么需要重新配置时钟?
- 唤醒后,虽然 MCU 从停止的地方继续执行,但默认的体系时钟可能已经发生了变革:
- 体系时钟切换为 HSI(默认 8 MHz)。
- 如果应用需要更高的时钟频率(如 PLL 运行在 72 MHz)或外部时钟(如 HSE),需要重新配置。
- 直接执行代码的影响:
- 许多外设(如 UART、SPI 等)依赖于特定的时钟频率。默认切换到 HSI 后,这些外设可能无法正常工作。
- 因此,唤醒后立即调用 SystemClock_Config(),恢复体系时钟到应用预期的状态。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |