我们都知道,MCU有低功耗模式,比如GD32F303芯片,就有Sleep、Deepsleep和Standby三种模式。关于这三种模式的具体使用方法,小伙伴们可以参考《GD32F30x系列用户手册》。
今天我们来聊下几个低功耗模式要点。
1、进入低功耗模式后IO口的状态:
Sleep和Deepsleep模式:IO口保持进入低功耗前的状态,即本来是输出高的继续输出高,本来是输出低的继续输出低(一个重要提示:在进入Deepsleep前,要将不需要保持状态的IO口配置为模拟输入,这样可以达到最低功耗)
Standby模式:所有IO口都被强制设置为浮空输入,即IO口不保持;
2、关于外部晶振状态
Sleep模式:外部晶振保持振动状态
Deepsleep模式:外部晶振停振,唤醒MCU后,MCU强制使用内部晶振且没有倍频,应用程序需要在唤醒后进行时钟重配
Standy模式:外部晶振停振
3、唤醒后程序执行位置:
Sleep和Deepsleep模式:从进入低功耗之后的第一句开始执行(一般Deepsleep唤醒后的第一句为时钟重配函数)
Standby模式:从头重新执行程序,Standby唤醒相当于一次掉电复位
4、唤醒源:
Sleep模式:任何一个中断或事件都将唤醒MCU(中断或者事件取决于使用WFI还是WFE指令进入低功耗)
Deepsleep模式:只有EXTI中断或事件可以唤醒MCU,EXTI触发源如下图
Standby模式:只有特定几个唤醒源可以唤醒,分别是NRST引脚唤醒、WKUP(PA0)引脚唤醒、看门狗事件唤醒、RTC闹钟唤醒
更多详细内容,请小伙伴参考《GD32F30x系列用户手册》——PMU章节。
关于低功耗,小伙伴们有其他想要了解的,可以在评论区留言互动哦。
更多GD32 MCU相关咨询:https://www.gd32bbs.com/