论坛» 嵌入式开发» MCU

STM32低功耗唤醒方式

工程师
2022-10-15 23:18 1楼

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




高工
2022-10-16 13:29 2楼

感谢分享

高工
2022-10-16 22:07 3楼

感谢分享

工程师
2022-10-16 22:40 4楼

不错的分享

高工
2023-01-30 14:20 5楼

感谢楼主的分享很实用了。

高工
2023-01-30 14:21 6楼

感谢楼主的分享,很实用了。

专家
2023-01-31 07:27 7楼

谢谢分享

高工
2023-01-31 08:09 8楼

感谢楼主的分享

院士
2023-02-04 21:37 9楼

谢谢分享,学习了。

专家
2023-02-04 22:46 10楼

感谢分享

共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]