stm32的RTC

RTC是一種特殊的定時器,特殊之處在於RTC模塊和時鐘配置系統(RCC_BDCR寄存器)在後備區域(BKP,因此在系統復位或從待機模式喚醒後RTC的設置和時間維持不變。

由於在後備區域,所以不能人以訪問修改。

啓動訪問RTC的操作:

1、設置寄存器RCC_APB1ENRPWREN BKPEN位來使能電源和後備接口時鐘。

2、設置寄存器PWR_CRDBP位使能對後備寄存器和RTC的訪問。

RTC時鐘

RTC時鐘由兩部分組成,第一部分爲PCLK1,用於向RTC寄存器讀寫寄存器的時鐘。第二部分時鐘爲RTC的核心時鐘,例如時鐘計數等,RTC的核心時鐘源可有三種:

①HSE時鐘除以 128

②LSE振盪器時鐘

③LSI振盪器時鐘

RTC中斷類型

時鐘源可進行再次分頻作爲計數器的基本週期,最長可大一秒鐘,因此又稱爲秒中斷(可屏蔽);當計數器減到0時會出現下溢中斷(可屏蔽);鬧鐘中斷:當計數器與鬧鐘寄存器數值一樣時會出現鬧鐘中斷(可屏蔽)。

復位後不可變寄存器:RTC_PRLRTC_ALRRTC_CNTRTC_DIV寄存器。

RTC寄存器

可讀寄存器只在與

RTC APB1 時鐘進行重新同步的RTC時鐘的上升沿被更新,因此會在未同步時讀取寄存器時會出現不正確數據,通常會出現在以下三種情況之下:

①發生系統復位或電源復位

②系統剛從待機模式喚醒

③系統剛從停機模式喚醒

爲達到數據正確,在進行數據讀時需要查看同步標誌位RSF位。

配置RTC寄存器過程:

1.   查詢RTOFF位,直到RTOFF的值變爲’1’(查看上一次是否對寄存器寫入完成) 

2.   CNF值爲,進入配置模式 (只有進入配置模式才能對寄存器寫入)

3.   對一個或多個RTC寄存器進行寫操作 

4.   清除CNF標誌位,退出配置模式 

5.   查詢RTOFF,直至RTOFF位變爲’1’ 以確認寫操作已經完成。 

僅當CNF標誌位被清除時,寫操作才能進行,這個過程至少需要3RTCCLK 週期。

注:RTC預分頻器餘數寄存器存儲的數據爲RTC的以時鐘源爲週期的計數,並非分頻後的週期。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章