STM學習筆記--RTC
1:首先明白其時鐘來源,時鐘源于3個部分,HSE/28;LSE(32.768KHz);LSI(40KHz);時鐘經過可編程預分頻器(20bits)RTC_PRLH/RTC_PRLLRTC_DIVH/RTC_DIVL,產生最長時間1S的RTC時間基準TR_CLK,可產生秒中斷。TR_CLK周期累加(RTC_CNT計數)并與RTC_ALR(32bits)寄存器比較,若相等則可產生鬧鐘中斷。若RTC_CNT計數溢出,也會產生溢出中斷。對RTC的操作,是通過APB1接口,其APB1接口是由APB1總線時鐘驅動(P1CLK),用來與APB1總線接口的。
本文引用地址:http://www.ex-cimer.com/article/201611/315984.htm注:預產生中斷,必須使能相應的中斷位。RTC_CRH(OWIE,ALRIE,SECIE)
2:2個獨立的復位類型。
(1):APB1接口由系統復位
(2):RTC核心(分頻器,鬧鐘,計數器)由后備域復位
備份區(qū)域有兩個專門的復位,只影響備份區(qū)域。
復位條件:軟件復位,由備份區(qū)域控制寄存器(RCC_BDCR)中的BDRST
硬件復位,VDD,及VBAT兩者掉電前提下,VDD或者VBAT上電引發(fā)復位。
3:3個專門可屏蔽中斷
(1)秒中斷,最長時間為1S。Ftc_clk=Frtc_clk/(PRL[19:0]+1)
(2)溢出中斷,指示內部可編程計數器溢出并到0的狀態(tài)。
(3)鬧鐘中斷,軟件可編程的鬧鐘中斷。
配置RTC寄存器
首先必須等到RTC_OFF為1,表示上一次寫RTC寄存器完成;其次將RTC_CRL寄存器中的CNF位置1,表示進入寄存器配置模式。
配置步驟:
1:查詢RTC_OFF是否為1,直到RTC_OFF為1。(RTC_OFF為只讀位)
2:置CNF位為1,進入配置模式
3:對RTC寄存器進行寫/修改操作
4:清除CNF位,退出配置模式
5:查詢RTC_OFF標志,直至RTC_OFF為1時表示寫入完成。
RTC的標志設置
RTC預分頻器余數寄存器(RTC_DIVH/RTC_DIVL)
評論