STM32低功耗唤醒方式

2024-03-12  

MCU进入低功耗之后,以极低的功耗维持着系统“活着”,但是醒过来是需要一定条件的,比如定个“闹钟”,按键“按一下”等,目前常用的“正常的”唤醒方式有以下几种:

1、RTC定时唤醒;

2、外部中断唤醒(按键或者通讯唤醒);

3、特殊唤醒引脚唤醒(某些引脚具有专门的唤醒功能)。

下面,我们再来看一看如何通过RTC和外部中断唤醒MCU。

1、RTC定时唤醒

依然是从手册中我们可以看到,所有的RTC时间都可以把MCU从低功耗模式中唤醒:

介绍使用RTC的定时功能实现,定时1S唤醒一次,使用cubemx进行对RTC进行配置:

pYYBAGMz8QWAdECFAAJLgQ4ruUw710.png

生成代码的时候,勾选这个选项,可以把不用的引脚配置为模拟输入模式,降低功耗:

pYYBAGMz8SGARX2KAAE3Wv6tero160.png

RTC的配置如图,使能RTC,1S中断唤醒一次:

poYBAGMz8TWALIlRAAFoRltLwe0908.png

接着,我们在while(1)里面写下面的代码,通过串口打印出唤醒信息,实际上代码在执行的时候,遇到红框出的低功耗入口函数,代码会停止在这里,当遇到唤醒信号的时候,会继续往下执行,一般进入STOP模式之前我们会先配置好唤醒所需要的条件,相应的IO等进入低功耗状态,唤醒之后,把硬件相关的重新初始化,才可以正常使用。

poYBAGMz8UiAVLfPAAChI4QcwXA962.png

外部中断也可以用来唤醒MCU,需要提供一个下降沿用以把MCU从低功耗中唤醒。

我们就直接使用串口的RX作为外部中断引脚唤醒,使用串口3的RX也即是PB11引脚,关于外部中断这里不做具体介绍了,需要的小伙伴可以私信我,专门出一期介绍。

需要先配置IO口为外部中断模式:

pYYBAGMz8WWASMkfAAFrUVRvNDA499.png

在进入低功耗模式之前一定要先配置,这样才能够正常唤醒。

pYYBAGMz8YGAFlaOAAFIkP8bivo134.png


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。