STM32F103有三种低功耗模式:
(1)睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统滴答定时器Systick等仍在运行)。
(2)停机模式(所有的时钟都已停止)。
(3)待机模式(1.8V电源关闭)。
本章节我们主要讲解停机模式,停机模式是在Cortex™-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8V供电区域的的所有时钟都被停止, PLL、 HSI和HSE RC振荡器的功能被禁止, SRAM和寄存器内容被保留下来。在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。
在实际的停机模式编程时需要清楚哪些问题呢? 请继
STM32F103如何进入停机模式
在RTX系统中,让STM32进入停机模式比较容易,调用固件库函数PWR_EnterSTOPMode即可,不过要注意:为了进入停机模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
STM32F103如何退出停机模式
由于我们是采用指令WFI指令进入停机模式,那么设置任一外部中断线EXTI为中断模式并且在NVIC中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键K2对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤醒。
STM32F103使用停机模式注意事项
使用停机模式注意以下两个问题:
(1)进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
(2)当一个中断或唤醒事件导致退出停机模式时,HSI RC振荡器被选为系统时钟。这个时候用户要根据需要重新配置时钟,如果使用的HSE时钟,那么要重新配置并使能HSE和PLL |