新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > STM32再學(xué)習(xí)——實(shí)時(shí)時(shí)鐘(RTC)

STM32再學(xué)習(xí)——實(shí)時(shí)時(shí)鐘(RTC)

作者:jobs 時(shí)間:2013-10-23 來源:電子產(chǎn)品世界 收藏

  ,是Real Time Counter的縮寫。在中,其實(shí)是一組連續(xù)計(jì)數(shù)的,各個(gè)產(chǎn)品及系列各不相同。因此,在相應(yīng)的軟件配置下,可提供的功能。當(dāng)然,修改這個(gè)的值也就重新設(shè)置了系統(tǒng)當(dāng)前的時(shí)間和日期。

本文引用地址:http://2s4d.com/article/182407.htm

  只是一個(gè)時(shí)鐘,但與相連的有兩個(gè)系統(tǒng)時(shí)鐘,一個(gè)是APB1接口的PCLK1另一個(gè)是RTC時(shí)鐘[注意1]。這樣,RTC功能也就分為兩個(gè)部分:第一部分,APB1接口部分,與APB1總線相連,也就是通過這條總線對(duì)其進(jìn)行讀寫操作。另一部,RTC核,由一系列可編程組成,這部分又再細(xì)分為兩個(gè)組件:預(yù)分頻模塊與32位可編程計(jì)數(shù)器。預(yù)分頻模塊用來產(chǎn)生最長(zhǎng)為1秒的RTC時(shí)間基準(zhǔn),而32位的可編程的計(jì)數(shù)器可被初始化為當(dāng)前的系統(tǒng)時(shí)間。

  下圖為RTC簡(jiǎn)化框圖:

  讀RTC

  從上面的工作原理可知,RTC核完全獨(dú)立于RTC APB1接口,軟件通過APB1接口來訪問RTC的各項(xiàng)參數(shù),包括預(yù)分頻值、計(jì)數(shù)器值等等,但是這些參數(shù)值只在RTC時(shí)鐘的上升沿被更新,之后,RTC時(shí)鐘會(huì)與RTC APB1時(shí)鐘進(jìn)行重新同步。這里會(huì)有一些問題出現(xiàn),就是在APB1接口剛剛被開啟時(shí),第一次的內(nèi)部更新之前,那么此時(shí)從RTC中讀出的第一個(gè)值可能被破壞了,例如下面所述的三種情況:

  •   發(fā)生系統(tǒng)復(fù)位或電源復(fù)位

  •   系統(tǒng)剛從待機(jī)模式喚醒

  •   系統(tǒng)剛從停機(jī)模式喚醒

  可以簡(jiǎn)單得出,在APB1接口被禁止時(shí)(復(fù)位,無時(shí)鐘或斷電)RTC核仍保持運(yùn)行狀態(tài)。因此,在禁止了RTC的APB1接口后,軟件首先須等等RSF位被硬件置1.

  RTC功能配置

  1. 查詢RTOFF 位,直到RTOFF 的值變?yōu)椤?”

  2. 置CNF 值為1,進(jìn)入配置模式

  3. 對(duì)一個(gè)或多個(gè)RTC 寄存器進(jìn)行寫操作

  4. 清除CNF 標(biāo)志位,退出配置模式

  5. 查詢RTOFF,直至RTOFF 位變?yōu)椤?” 以確認(rèn)寫操作已經(jīng)完成。

  僅當(dāng)CNF 標(biāo)志位被清除時(shí),寫操作才能進(jìn)行,這個(gè)過程至少需要3 個(gè)RTCCLK 周期。

  注意1:RTC時(shí)鐘必須小于PCLK1時(shí)鐘的四分之一以上。

 

塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉