原创 stm32的几种休眠模式

2023-7-25 17:57 3637 6 6 分类: MCU/ 嵌入式 文集: MCU休眠方式以及唤醒
1. sleep 模式
进入 sleep 模式:
通过执行WFI或者WFE指令进入休眠模式
退出 sleep 模式:
通过WFI指令进入休眠模式的,通过外设中断即可唤醒CPU
通过WFE指令进入休眠模式的,通过事件即可唤醒CPU
2. Stop 模式
CPU时钟关闭,调压器可以选择正常运行或者进入低功耗模式,1.8V域所有时钟都关闭,PLL,HSI,HSE都关闭,SRAM和寄存器的值能保持。
进入 Stop 模式:
注意的是为了更减少功耗,内部调压器可以进入低功耗模式,如果Flash 正在编程,会等到编程结束再进入stop模式,如果正在访问APB域,会等到访问结束再进入stop模式。
ADC模块仍然在工作,除非进入Stop模式前关闭掉。
退出 Stop 模式
Stop 一旦被中断或者事件唤醒,会选择HSI作为运行的系统时钟。
如果是调压器选择了低功耗模式,唤醒是需要启动时间的,有一点延迟。
3. Standby 模式
Standby模块达到最低功耗,CPU进入深度休眠,调压器关闭,PLL,HSI和HSE时钟关闭,SRAM和寄存器的值都会丢失,仅在有备份电源情况下,保持备份寄存器
进入 Standby 模式:
PWR_CR寄存器的PDDS位置位;
清楚PWR_CSR寄存器的WUF位;
执行WFI或者WFE指令;
离开 Standby 模式
外部复位(NRST),独立看门狗复位,WKUP上升沿,RTC alarm事件触发唤醒,唤醒以后除了PWR_CSR寄存器,其他寄存器值都被复位。
唤醒以后系统重新复位重启。
在Standby模式下IO口状态
在待机模式,所有的IO口都是高阻态,除了:
1、复位pad(仍然可用)
2、如果配置作为tamper或者校准输出,TAMPER引脚
3、WKUP 引脚 ,如果使能
后续将对每种休眠方式进行实验

作者: 宏杰, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-4027574.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条