Stm8L051/L052系列单片机的低功耗有五种模式:
1. wait模式
2. Lowpower run模式
3. Lowpower wait模式
4. Active-haltwith full RTC模式
5. Halt模式
最低功耗的就是就是halt模式。这里也主要总结一下如何进入halt模式,进入以后可以通过什么方式唤醒,以及有很多人会关心的如何自动唤醒。
Halt模式进入很简单,执行一条halt指令,调用库函数halt()。但是进入前要注意把所有的中断挂起标志给清除掉。要是不清零又恰巧有中断标志的时候进入该模式也会被立马唤醒。进入这种模式,所有的外设全都关闭了,所有时钟关闭。这时候它自己是醒不过来的,只能给个外部中断或者重启复位。当然这个在进入halt之前是要把中断引脚什么的该配置的给配置好了。
那现在有个问题就是在halt模式下只能通过外部中断和复位了,我需要它自动醒过来怎么办?那就在需要设置RTC时间,到点了就要醒过来。既然开了闹铃了它也就不是纯halt模式了。这时候也就叫做active-halt模式。Active-halt模式下可以打开个rtc和lcd。
设置rtc自动唤醒功能步骤:
1、选择RTC时钟源(使用lse或者lsi) CLK_RTCClockConfig(CLK_RTCCLKSource_LSI,CLK_RTCCLKDiv_1);
2、使能RTC的时钟