历史上的今天
今天是:2025年03月10日(星期一)
2020年03月10日 | STM32开发笔记78: 2种STOP模式的唤醒方法
2020-03-10 来源:eefocus
单片机型号: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种方法,可靠性更高。当然了,前提是你的单片机醒来后,不再做其它的事情。
史海拾趣
|
分享一个利用AT89C51产生PWM信号控制直流电机调速的模拟模型。 软件环境:Keil C51,Proteus 已有文件:Keil C51工程文件,C51源文件,Proteus模型。已经产生的hex文件… 查看全部问答> |
|
大家学习labview都在哪些网站和论坛上混啊? 本人常去的有两个,www.ni.com这是NI的网站,学习labview怎么能不上呢! 其次是www.gsdzone.net 这是我常去的Labview论坛,里面有资深NI工程师潜伏哦!… 查看全部问答> |
|
wince writefile 总是发送不了数据,但不报错! 问题如下: 我现在接手别人的工作,驱动别人是用evc4.2写dll,驱动经测试可用。 我现在用C#开发应用程序。 现在的问题是,驱动writefile第二个参数他传的是 ...… 查看全部问答> |
|
在C51中,char xdata doc[19]=\"AT+CMGF=0\"; 我想请教一下各位大虾,在ATmega128中,这个语句应该怎样写呢? … 查看全部问答> |
|
我在mobile5下使用ras函数RasDial拨号连接没有问题 同样的程序以及拨号配置在mobile 6下却无法拨号成功 不知道5跟6在这方面有什么不一样吗 有经验的大虾帮忙看看,谢谢!!!… 查看全部问答> |




