stm32 系统进入stop模式_STM32开发笔记78: 2种STOP模式的唤醒方法

单片机型号:STM32L053R8T6

前面已有多篇开发笔记详细阐述了STM32 STOP模式的进入和唤醒方法,如果自发唤醒一般选用RTC方法,其调用的程序如下:

Target.EnableLowPower();//使能超低功耗

Target.Rtc.EnterStopRtcMode(10);//进入低功耗,时间10秒

EnableLowPower使能了超低功耗。EnterStopRtcMode通过RTC方式进入STOP模式,后面的参数指定的是唤醒时间,也就是进入STOP模式后,10秒唤醒。

唤醒后做的事情还很多,最主要的是时钟变换,这在开发笔记STM32开发笔记74: STM32L0低功耗唤醒后的时钟选择已经介绍过,实际上对于低功耗程序还有一种处理方式,就是系统启动后先进行该做的事情,然后进入低功耗,低功耗醒来后,直接重新启动。如果这样程序就可以写成这个样子:

Target.EnableLowPower();//使能超低功耗

Target.Rtc.EnterStopRtcMode(10);//进入低功耗,时间10秒

Target.Restart();//唤醒后,重启

如果按照这个思路,我们还有另外一种写法,就是不启动RTC,直接通过内部看门狗唤醒。使用看门狗的方法要比RTC的可靠性要高,程序如下:

Target.Iwdg.SetMaxRefreshInterval(10);

Target.EnableLowPower();//使能超低功耗

Target.EnterStopMode();

SetMaxRefreshInterval函数设置了看门狗的最大延时时间,这里指定的是10秒,然后进入STOP模式。

这两种方法达到的效果是一致的,看门狗长延时时间的设置,在STM32开发笔记77: 内部看门狗长延时的产生已经进行了介绍,这两种方法功耗也很接近,我实际测试在3uA左右,我在板子上焊接有低压差稳压芯片,所以这个数值已经相当不错了。

还是刚才说的,第2种方法,可靠性更高。当然了,前提是你的单片机醒来后,不再做其它的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值