1. 初次了解RTC
1.介紹
實時時鐘是乙個獨立定時器。RTC模組有一組連續計數的計數器,通過相應的軟體配置,可以提供時鐘日曆的功能,計數頻率通常為秒。 修改計數器的值以重置系統的當前時間和日期。
2.特徵:
1) 32 位可程式設計計數器,用於更長的測量週期。
2)MCU斷電後即可執行。
3)低功耗。
3.回退暫存器和 RTC 暫存器特性
部分暫存器寫保護:RTC PRL、RTC ALR、RTC CNT 和 RTC div 暫存器不會被系統復位。
資料儲存能力:RTC和後備暫存器它不會被系統或電源復位源復位;從待機模式喚醒時,它也不會重置。 回退暫存器可用於在發生電源故障時儲存資料
獨立工作:RTC和後備暫存器由開關供電當 VDD 處於活動狀態時,交換機選擇 VDD 電源,否則由VBAT 引腳通電。 當 VBAT 通電時,它可以繼續工作
2 個獨立復位:APB1介面由系統復位; RTC 核心只能由回退域重置;
2. RTC組成
1.相關暫存器
(1) 控制暫存器高電平 (RTC CRH)。
位 2 (owie):允許溢位中斷位。
位 1 (alrie):允許中斷警報。
位 0 (secie):允許秒中斷。
位 5 (RTOFF):RTC 操作關閉。 (指示在其暫存器上執行的最後乙個操作的狀態。也就是說,它指示操作是否完成
位 4 (CNF):配置標誌。 (僅當此位時。設定為“1”並被軟體重新清除後'0',從而允許將資料寫入 RTC CNT、RTC ALR 或 RTC PRL 暫存器)。
(3) 預分頻器載入暫存器高電平 (RTC PRLH)。
位 28 (pwren):電源介面時鐘已啟用。
位 27 (BKPEN):啟用備份介面時鐘。
位 15 (RTCEN):啟用 RTC 時鐘。
位 9:8 (RTCSEL):RTC 時鐘源選擇。
位 0 (seon):使能外部低速振盪器。
2.RTC結構
RTC 由兩個主要元件組成。 第 1 部分(APB1 介面)。用於它連線到 APB1 匯流排另一部分(RTC 核心)。它由一組可程式設計計數器組成,分為兩個主要模組。 第乙個模組是:RTC的預分頻模組(以程式設計方式生成最長 1 秒的 RTC 時間參考 TR CLK)。 第二個模組是乙個32 位可程式設計計數器,可以是初始化為當前系統時間
新增:1) RTC 可以從三個 RTC 時鐘源中進行選擇:
2) RTC 的 APB1 單元還包含一組16 位暫存器,可以通過APB1和匯流排讀寫。
3) APB1介面由APB1 匯流排時鐘驅動程式,用於與 APB1 匯流排介面。
4) RTC的預分頻模組包括乙個20 位可程式設計分頻器(RTC 預分頻器),最高交叉因子為2 的 20 次方
5) RTC 有 3 個專門的中斷可以被遮蔽
6) 如果在 RTC CR 暫存器中設定了相應的允許位,則在每個TR CLK迴圈RTC 產生中斷 (中斷秒
7) 系統時間按TR CLK迴圈將儲存在RTC ALR暫存器中的可程式設計時間相加並進行比較,如果在RTC CR控制暫存器中設定了相應的允許位,則會出現中斷(在比較匹配時將生成)。警報被打斷
1) 啟用對 RTC 的訪問:啟用 PWR 和 BKP 時鐘 (RCC APB1ENR) 並啟用對回退暫存器和 RTC (PWR CR) 的訪問。
2) 設定RTC時鐘源:啟用LSE,將RTC的計數時鐘源設定為LSE。(rcc_bdcr)
3)進入配置模式:等待rtoff位為1,將cnf位設定為1。(rtc_crl)
4)設定RTC暫存器:設定頻分值、計數值等(RTC PRL),一般只設定頻分值,CNT設定獨立。
5)退出配置模式:清除CNF位,等待RTOFF位為1(RTC CRL)完成配置。
1) 查詢 rtoff 位,直到 rtoff 的值變為 1。
2) 將 CNF 值設定為 1 進入配置模式。
3) 寫入乙個或多個 RTC 暫存器。
4) 清除 CNF 標誌並退出配置模式。
5) 查詢 rtoff,直到 rtoff 位變為 '1' 以確認寫入操作已完成。
1.啟用電源時鐘並啟用備份域訪問:HAL RCC PWR CLK Enable、HAL RCC BKP Clk Enable 和 HAL PWR EnableBkupAccess
2.啟用 LSE 選擇 RTC 時鐘源 啟用 RTC 時鐘:HAL RCC OSCconfig(啟用 LSE)、HAL RCCEX PERIPHCLKCONFIG(選擇 RTC 時鐘源)、HAL RCC RTC 啟用(啟用 RTC 時鐘)。
3.初始化RTC,設定分頻值和工作引數:HAL RTC INIT(初始化RTC)和HAL RTC MSnSpinit(完成RTC底初始化)。
4.設定 RTC 的日期和時間。
5.獲取 RTC 的當前日期和時間。
這就是這次的全部內容