STM32,RTC週期性喚醒(wakeup)中斷

2021-08-11 04:06:39 字數 617 閱讀 3418

stm32l151:

int main(void)

}static void mx_rtc_init(void)

/**enable the wakeup

*//*

//配置rtc cr暫存器的低兩位,選擇rtc計數器時鐘的頻率這裡是1hz,cr暫存器的第十四位使能wakeup喚醒中斷,給wakeup定時器賦值為10,這裡就是沒過一秒定時器的值減一,當定時器減到0的時候就是是isr暫存器的相應標誌位置1並且中斷掛起暫存器也會置1 exti->pr,所以寫中斷服務程式的時候需要清除isr的標誌位還有pr的標誌位。在當前的函式配置過程:

1、寫保護破除

2、請0cr中的wute位,禁止喚醒定時器

3、選擇1hz的時鐘,使能中斷

4、開啟中斷線20-----對應的就是rtc喚醒,中斷線17----對應rtc鬧鐘

這裡rtc_wakeupclock_ck_spre_16bits是設定cr暫存器中的低三位,喚醒時鐘選擇,這裡選擇1hz,10表示工作10s後進入喚醒中斷

*/if (hal_rtcex_setwakeuptimer_it(&hrtc, 10, rtc_wakeupclock_ck_spre_16bits) != hal_ok)

}

STM32RTC喚醒功能配置(基於LL庫)

以下函式是基於stm32l476晶元寫的 函式名稱 rtc wake init 函式說明 rtc喚醒初始化 需要在時鐘初始化中開啟lse 輸入引數 無 返回引數 無 void rtc wake init void 設定重裝載值 ll rtc wakeup setautoreload rtc,5 選擇...

STM32 RTC自適應校準演算法

公司負責硬體的同事測試發現,rtc使用外部晶振時,由於一些干擾 高頻訊號之類的 外部晶振會出現不起振的情況,於是就決定把外部晶振取消了,又因為裝置要低功耗的,就沒用有源的晶振,於是乎就用了stm32內部的rc時鐘 rc時鐘的兩個分頻值都可以設定,校準的原理很簡單,固定乙個分頻值,然後動態調整另乙個分...

stm32l0 rtc休眠週期自動喚醒文件整理

stm32l0 rtc 休眠週期自動喚醒 文件整理 wangxl 20190814 一 週期性自動喚醒 手冊文件說明 週期性喚醒標誌由 16 位可程式設計自動過載遞減計數器生成。喚醒定時器範圍可擴充套件至 17 位。可通過rtc cr 暫存器中的 wute 位來使能此喚醒功能。喚醒定時器的時鐘輸入可...