我们都知道,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方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462
|