工作问题笔记-----STM32休眠问题

本文详细介绍了STM32的SLEEP、STOP和STANDBY三种低功耗模式,其中STOP模式在唤醒后需要重新配置RCC以保持外设正常运行。在STOP模式下,103和030型号的STM32存在唤醒差异,103需要关闭系统时钟中断。使用_Power_EnterSTOPMode后,_WFI()将进入STOP而非SLEEP模式。
摘要由CSDN通过智能技术生成

STM32低功耗分三种:

SLEEP: 电压调节器开启,Cortex-M3内核停止运行,外设保持运行态;

STOP: 电压调节器可选择性开启,所有外设时钟、PLL、HSI和HSE被关闭,Cortex-M3内核和所有外设停止运行,保留SRAM和寄存器的内容;

STANDBY: 待机模式Standby:电压调节器关闭、整个1.8v区域断电。除了备份区域和待机电路的寄存器以外,SRAM和寄存器的内容全部丢失。

 

在休眠状态下,MCU的代码并不会继续执行,而是进入休眠状态,等待唤醒,唤醒的过程会先执行IRQ中断服务函数,然后再执行WFI后的函数。

省电级别由低到高,standby休眠后会让我们的数据丢失,而SLEEP会被所有的中断唤醒,且省电级别并没有STOP高,STOP只能被所有的外部中断EXIT LINE唤醒,符合我们的ACC唤醒规则需求。因为STOP休眠状态下时钟、PLL、HSI、HSE等都会被关闭,因此,唤醒之后,需要重新对RCC进行配置,以保持MCU唤醒后外设的正常运行,因此,需要时钟的情况下STM32的休眠模式应该选用SLEEP而不是STOP,本人目前的需要是STOP休眠状态。一般情况下,为了更加省电,在允许的情况下,MCU休眠后,最好把GPIO口都断开,即DeInit。

PS:经过实践结果    发现103和030 两种STM32的型号在STOP模式下的唤醒有所区别  当103在STOP休眠时会被系统时钟中断唤醒,所以103在休眠前应当关闭系统时钟中断,而030

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值