图 2 各种模式的进入退出条件
进入睡眠模式
通过执行 WFI 或 WFE 指令进入睡眠状态。根据 Cortex-M3 系统控制寄存器中的
SLEEPONEXIT 位的值,有两种选项可用于选择睡眠模式进入机制:
● SLEEP-NOW:如果 SLEEPONEXIT 位被清除,当 WRI 或 WFE 被执行时,微控制
器立即进入睡眠模式。
● SLEEP-ON-EXIT:如果 SLEEPONEXIT 位被置位,系统从最低优先级的中断处
理程序中退出时,微控制器就立即进入睡眠模式。 在睡眠模式下,所有的 I/O
引脚都保持它们在运行模式时的状态。
退出睡眠模式
如果执行 WFI 指令进入睡眠模式,任意一个被嵌套向量中断控制器响应的外设中
断都能将系统从睡眠模式唤醒。如果执行 WFE 指令进入睡眠模式,则一旦发生唤
醒事件时,微处理器都将从睡眠模式退出。唤醒事件可以通过下述方式产生:
● 在外设控制寄存器中使能一个中断,而不是在 NVIC(嵌套向量中断控制器)
中使能,并且在 Cortex-M3 系统控制寄存器中使能 SEVONPEND 位。当 MCU 从 WFE
中唤醒后,外设的中断挂起位和外设的 NVIC 中断通道挂起位(在 NVIC 中断清除
挂起寄存器中)必须被清除。
● 配置一个外部或内部的 EXIT 线为事件模式。当 MCU 从 WFE 中唤醒后,因为
与事件线对应的挂起位未被设置,不必清除外设的中断挂起位或外设的 NVIC 中
断通道挂起位。 该模式唤醒所需的时间最短,因为没有时间损失在中断的进入
或退出上。
停止模式
停止模式是在 Cortex-M3 的深睡眠模式基础上结合了外设的时钟控制机制,在停
止模式下电压调节器可运行在正常或低功耗模式。此时在 1.8V 供电区域的的所
有时钟都被停止,PLL、HSI 和 HSE RC 振荡器的功能被禁止,SRAM 和寄存器内容
被保留下来。 在停止模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
关于如何进入停止模式,详见图 3。
电源控制寄存器(PWR_CR) 在停止模式下,通过设置 的 LPDS 位使内部调节器进
入低功耗模式,能够降低更多的功耗。 如果正在进行闪存编程,直到对内存访
问完成,系统才进入停止模式。 如果正在进行对 APB 的访问,直到对 APB 访问
评论0
最新资源