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种方法,可靠性更高。当然了,前提是你的单片机醒来后,不再做其它的事情。

 

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

 

 

 

 

 

 

你可能感兴趣的:(#,STM32快速开发,STM32快速开发)