STM8L的“RTC periodic wakeup unit”可以通過寄存器RTC_CR1的WUCKSEL[2:0] bits來配置不同的喚醒周期。具體的有以下的三種模式:
1.1,WUCKSEL[2:0] = 0xxb for short wakeup periods
1.2 WUCKSEL[2:0] = 10xb for medium wakeup periods
1.3 WUCKSEL[2:0] = 11xb for long wakeup periods
其中short wakeup periods時鍾的分頻是如下流程:

則的周期喚醒在不同時鍾源頻率下的clk為:

最小的喚醒周期為(0x0001+1)*0.125us = 0.25us
最大的喚醒周期為(0xfffff+1)*31.25ms = 2048s
medium wakeup periods時鍾源配置流程:

則的周期喚醒在不同時鍾源頻率下的clk為:

最小的喚醒周期為(0x0000+1)*0.125us = 0.125us
最大的喚醒周期為(0xfffff+1)*8192s = 536870912s
long wakeup periods的時鍾源計算和medium wakeup periods是一樣區別就是WUCKSEL[2:0] = 11xb和重載的計數是從0x10000-0x1FFFF;
所有的時鍾源的計算都遵循以下公式:
單位HZ
目前公司項目是用LSE配置的1HZ使用halt的進入低功耗模式,休眠期間功耗為1.5ua左右。
另外在喚醒以后使用TIMEER1作為整個軟件系統的嘀嗒時基,注意定時器休眠之前的操作,中斷關閉,DeInitt定時器,關閉定時時鍾,清定時中斷標志等,不然會出現莫名重啟。
目前軟件運行休眠和喚醒都正常。
