下面就是小编带给大家的stm32f030如何知道进入了stop模式方法操作,希望能够给你们带来一定的帮助,谢谢大家的观看。
方法/步骤
1
一般我们做开发大多都是选择停机模式,因为停机模式功耗较低。而且任一中断或事件都能唤醒,待机模式虽然功耗最低,也就差10个微安,但是只有特定的唤醒脚可以唤醒,实时性不是很好。
2
我们用停机模式也能降到10几个uA,实时性又好,干嘛不用呢。 要怎么做才能把停机模式功耗进一步降低呢。
3
局限性:用内部时钟LSI,大小固定导致Wakeup Time Base 被限制。 Wakeup Time(最大)=0.41ms*65535(0xffff)=26.869s,可能达不到休眠时间要求。
4
另一种方法:改HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle, 2, RTC_WAKEUPCLOCK_CK_SPRE_16BITS);
5
这里RTC_WAKEUPCLOCK_CK_SPRE_16BITS是设置CR寄存器中的低三位,唤醒时钟选择,这里选择1hz,2表示工作2S后进入唤醒中断,这个数随便改,改成多少就是休眠多少时间。
6
串口中断唤醒唤醒机制:在MCU进入STOP状态后,不能直接通过UART等外设唤醒,在MCU进入STOP前将RX脚设为EXTI模式,并使能对应的中断。唤醒后重新初始化串口、配置时钟。
注意事项
1
以上就是小编带给大家的如何操作的关键所在,如果觉得本经验对你们有帮助,请给小编我进行一点小小的支持。大家也可以下面发表一下自己的看法。
2
个人意见,仅供参考。