一、RTC時鐘框圖分析(重要)
先熟悉一下幾個知識點:
1、STM32的實時時鐘(RTC)是一個獨立的定時器!
2、RTC模塊和時鐘配置系統(RCC_BDCR寄存器)是在后備區域,即在系統復位火從待機模式喚醒后RTC的設置和時間維持不變。
RTC這章中,對RTC相關的寄存器的操作特別重要,我在這里不解釋了,請查閱手冊。。
先上圖!
RTC時鐘框圖
RTC時鐘框圖分為完全獨立的兩個部分:1、APB1接口部分(用來RTC相關的寄存器);2、RTC核心;
第一部分:APB1接口。注意:這里涉及到寄存器RTC_CRL中的RSF位,這位是寄存器的同步標志,具體內容去看STM32參考手冊RTC這一章。
第二部分:RTC核心。這里分為兩個模塊:1、RTC預分頻器模塊;2、一個32位的可編程計數器;
下面開始分析第二部分:
先給大家介紹下后備區域的幾個特別重要的寄存器:
1、RTC_DIV(重要):RTC預分頻器余數寄存器。這個寄存器的作用是來獲得比秒鐘更加準確的時鐘(0.1s,0.01s),該寄存器是自減的,用來保存還需要多少個時鐘周期獲得一個秒信號。這里加上一個公式(STM32參考手冊里有):fTR_CLK=fRTCCLK/(PRL[19:0]+1) 到這里是書上的原話~!
解釋一下,RTC_DIV寄存器的值是由RTC_PRL(RTC預分頻器裝載寄存器)提供的,而RTC_DIV寄存器的時鐘頻率是由RTCCLK提供的(看圖)。比如我們把RTC_PRL值設為32767,則RTC_DIV寄存器的值也為32767,他和RTCCLK的時鐘頻率是一樣的(這里根據上面的公式,RTC_PRL加1,則RTC_DIV也加1)。RTCCLK的時鐘周期是1/32768(s),也就是每一個RTCCLK的時鐘周期,RTC_DIV自減1,直至到1s鐘后,被硬件重新裝載,也就是1s鐘減32768次。那他到底是怎么提供0.1s,甚至是0.01s的呢?
舉個例子就明白了。比如我想要得到1.12秒的這個時間,就要求RTC_DIV自減0.12/(1/32768)次。RTC_DIV只得到0.12s的時間,還有1s時間從哪兒來?他是TR_CLK提供的。這個問題會在下文講解。。→_→
2、RTC_PRL:RTC預分頻裝載寄存器。這個寄存器有兩個作用:1、提供給RTC_DIV的重新裝載值;2、設置時鐘分頻系數。
第一個作用不講了。第二個作用:設置時鐘分頻系數。比如我們使用32.768KHz的晶振作為時鐘輸入,那么我們配置這個寄存器值位32767,就可以得到1s鐘的計數頻率(32768/(32767+1),單位(HZ))。
3、RTC_CNT(重要):RTC計數器寄存器。這個寄存器較簡單,用來記錄秒鐘值。如果之前對RTC_CR(控制寄存器),的相關中斷允許位配置的話,RTC_CNT寄存器可以產生一個溢出中斷。
4、RTC_ALR:RTC鬧鐘寄存器。從圖中就可以看出來,很簡單。用來標記鬧鐘產生時間,如果RTC_CNT的值和RTC_ALR的值相等的話,并使能中斷的話(在RTC_CR(控制寄存器)中配置),會產生一個鬧鐘中斷。
后備區域的寄存器就給大家介紹到這兒。相比大家通過上面的介紹結合框圖,頭腦里面應該有個大致流程了吧。沒有~!?臥槽~那就給大家理一遍思路→_→
首先外部加進來一個時鐘信號RTCCLK(32.768K),然后設置RTC_PRL的分頻系數為32767,得到一個秒時鐘信號TR_CLK(1HZ)。當TR_CLK每過一個時鐘周期,產生一個RTC_Second(秒鐘中斷),同時RTC_CNT計數器(記錄秒值)加1。如果要求更精準的時間,還可以在RTC_CR寄存器的RSF位被置1時去讀RTC_DIV的值。
上一篇:STM32F1RCC時鐘配置總結
下一篇:stm32 系統時鐘配置
推薦閱讀
史海拾趣
在電子行業的發展歷程中,Altech公司憑借其敏銳的市場洞察力,率先投入研發鋁合金汽車線束導體。隨著新能源汽車市場的崛起,對高效、輕量化的線束導體需求日益增長。Altech公司成功研發出鋁合金汽車線束導體,不僅滿足了市場對輕量化的需求,還提高了導電性能,為新能源汽車行業帶來了革命性的變革。
電子行業市場競爭激烈,Chen Yang Technologies也面臨著來自各方面的挑戰。在某次全球經濟危機中,公司遭遇了訂單減少、資金緊張等困難。然而,正是在這樣的困境中,Chen Yang Technologies展現出了頑強的生命力。公司迅速調整戰略,優化成本結構,同時加大研發力度,推出了一系列具有競爭力的新產品。這些舉措使得公司成功度過了危機,并在危機后的市場中獲得了更大的發展空間。
Electech Electronics一直非常重視產品質量和品質管理。公司建立了嚴格的質量管理體系,從原材料采購到產品生產、檢測和包裝等各個環節都進行嚴格把控。此外,公司還不斷引進先進的生產設備和技術,提升產品的制造精度和品質。這些舉措使得Electech Electronics的產品在市場上享有很高的聲譽,贏得了客戶的信賴。
EUCHNER公司一直將質量和服務視為其生命線。公司嚴格控制產品質量,所有核心部件均自行生產,以確保產品的可靠性和穩定性。同時,公司還注重客戶服務體驗,為客戶提供具有競爭力的價格及優質服務。無論是為大型汽車制造企業還是小型研究機構提供解決方案,公司都堅持與客戶緊密合作并傾聽他們的需求。通過持續提升質量和服務水平,EUCHNER公司逐漸贏得了客戶的信任和忠誠。
EUCHNER公司的歷史可追溯到1940年,由艾米·安士能先生創立的工程事務所。艾米·安士能先生是一位熱衷于機械運動和系統工程領域的創新者。在1952年,他成功發明了世界上第一個組合行程開關,這一創新技術為公司的未來發展奠定了堅實的基礎。1953年,EUCHNER公司正式成立,開始專注于機電控制產品的研究與開發。
C.K Magma公司始終堅持以創新為核心競爭力。他們不斷推出具有創新性的電子產品,如高性能的集成電路、智能傳感器等。這些產品憑借其卓越的性能和獨特的功能,在市場上獲得了廣泛的認可。同時,公司還注重產品的用戶體驗和售后服務,贏得了客戶的信賴和支持。
呵呵 雖然是流明被收購前的,但是有些參考價值: 為何是Cortex-M3? Cortex-M3是內核的ARM新型V7指令集結構系列的微控制器版本: 􀁺 優化的單周期Flash使用 􀁺 確定的快速中斷處理:通常是12個周期,使用末尾連鎖(tail-ch ...… 查看全部問答∨ |
|
我想在一個多任務程序中用udp方式實現任務之間的通信,應該屬于在本地機上實現通信,不知道怎么做啊,把ip設成一樣的127.0.0.1就可以了嗎?… 查看全部問答∨ |
|
我想在protel DXP創建PCB零件庫,我想知道一個元件,你怎么知道他的實際尺寸與在電路板上畫出來的尺寸一樣呢,也就是說,我的PCB元件大小能對得上實際大小呢?… 查看全部問答∨ |
|
我希望讓它以12Mbps狂奔! 呵呵 請教公主三個問題: 1、在pc的設備管理器里虛擬串口的波特率設置最高只能達到:115200 怎么提高? 2、如何在下位機設置虛擬串口的波特率? 3、 vcpdriver_v1.1_setup.exe 是干什么用的? 多次 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 利用STM32MP1和STM32MP2在嵌入式 Linux 平臺上部署有效的安全保護機制
- 超小但強大:MCU 的小尺寸封裝和集成如何幫助優化空間受限的設計
- 德州儀器推出全球超小型 MCU,助力微型應用創新
- Microchip推出電動兩輪車(E2W)生態系統,加速電動出行創新
- 意法半導體推出STM32U3微控制器,面向遠程、智能和可持續應用,拓展超低功耗系列創新
- (一) ECloudIDE入門STM32-CubeMX工程創建與導入
- (二)ECloudIDE入門STM32-官方寄存器版例程使用
- Simulink STM32F407VGT6實現硬件在環
- openharmony:hilog_lite組件移植