RCC時(shí)鐘模塊并不好理解,初次接觸我也是一頭霧水,而且我真正掌握它的時(shí)候也比較晚,是我在學(xué)習(xí)uC/os-II,需要分析時(shí)鐘時(shí)才有了深刻認(rèn)識(shí)。但在學(xué)習(xí)中我卻一定要把放在了前列,因?yàn)檫@是整個(gè)嵌入式最重要的基礎(chǔ)之一,可以說(shuō)是M3芯片的心臟。初學(xué)者理解是比較困難,但是掌握清晰對(duì)于嵌入式操作系統(tǒng)特別是Timer定時(shí)器以及通訊領(lǐng)域具有重大意義。
下面進(jìn)入正題,先上一張RCC模塊的結(jié)構(gòu)圖:
初看此圖是不是感覺太復(fù)雜了,事實(shí)上我第一次看這張圖的時(shí)候也是的,完全理不清結(jié)構(gòu),不過(guò)不用擔(dān)心,下面我就分層帶你來(lái)理解這幅圖。
(1)時(shí)鐘源(4個(gè)晶振源,1個(gè)中介源)
HSI(RC):內(nèi)部高速晶振,~8MHz
HSE(Osc):外部高速晶振(與電路設(shè)計(jì)時(shí)選擇有關(guān),25MHz)
LSE(Osc):外部低速晶振(默認(rèn)為32.768KHZ)
LSI(RC):內(nèi)部低速晶振,~40KHz
PLLCLK:鎖向環(huán)倍頻輸出,最大頻率小于72MHz,注:PLLCLK來(lái)源HSE,HSE/2,HSI/2
(2)系統(tǒng)時(shí)鐘源
SYSCLK:系統(tǒng)時(shí)鐘
來(lái)源HSI,PLLCLK,HSE,若CSS(時(shí)鐘監(jiān)視系統(tǒng))檢測(cè)到HSE失效,SYSCLK = HSI;
(3)主要輸出時(shí)鐘源
HCLK:高性能總線時(shí)鐘(SYSCLK通過(guò)AHB Prescaler,最高72MHZ)
PCLK1:外設(shè)1區(qū)域時(shí)鐘(通過(guò)APB1 Prescaler,最高36MHZ)
PCLK2:外設(shè)2區(qū)域時(shí)鐘(通過(guò)APB2 Prescaler,最高72MHZ)
此外APB1,APB2外設(shè)時(shí)鐘除了給對(duì)應(yīng)外設(shè)區(qū)域提供時(shí)鐘外,還可通過(guò)TIMERX Prescaler分配不同的定時(shí)器時(shí)鐘。
ADCCLK:ADC外設(shè)時(shí)鐘(PCLK2通過(guò)ADC Prescaler)
USBCLK:通用串行接口時(shí)鐘(PLLCLK通過(guò)USB Prescaler,等于48MHZ)
RTCCLK:實(shí)時(shí)時(shí)鐘,來(lái)源LSI,LSE,HSE/128
IWDGCLK:獨(dú)立看門狗時(shí)鐘,來(lái)源LSI
MCO:輸出內(nèi)部時(shí)鐘
從上面看,我們前面學(xué)到的GPIOD外設(shè)還有后面的USART等的時(shí)鐘都沒有提到,為什么,其實(shí)它們包含在PCLK1,PCLK2這兩個(gè)外設(shè)區(qū)域時(shí)鐘里,也就是說(shuō)他們的外設(shè)時(shí)鐘來(lái)源于該區(qū)域的時(shí)鐘。下面是STM32Fxxx固件函數(shù)庫(kù)中15.2.22以及15.2.23所提到的圖,包含所有外設(shè)對(duì)應(yīng)的區(qū)域:
PCLK1時(shí)鐘區(qū)域:
PCLK2時(shí)鐘區(qū)域:
了解了這些其實(shí)已經(jīng)對(duì)系統(tǒng)時(shí)鐘掌握差不多了,下面我就以寄存器控制方式展現(xiàn)嵌入式時(shí)鐘的配置(庫(kù)函數(shù)操作對(duì)于理解時(shí)鐘配置過(guò)程的幫助并不大,特別只是單純調(diào)用而沒有理解每個(gè)函數(shù)內(nèi)容的情況下)。
(4)系統(tǒng)時(shí)鐘配置實(shí)例(以使用HSE晶振,最后系統(tǒng)時(shí)鐘為50MHZ為例)
注:RCC寄存器功能可參考《STM32中文參考手冊(cè)》6.3(互聯(lián)型產(chǎn)品)
通過(guò)上述方式就完成了時(shí)鐘的一般外設(shè)的時(shí)鐘初始化設(shè)置,配置系統(tǒng)時(shí)鐘50MHZ,APB2外設(shè)時(shí)鐘50MHZ,APB1外設(shè)時(shí)鐘25MHZ,理解了這些,延時(shí)時(shí)間和通訊速率等通過(guò)計(jì)算即可精確的知曉,這對(duì)于整個(gè)stm32的學(xué)習(xí)以及后續(xù)理解嵌入式實(shí)時(shí)操作系統(tǒng)都具有重要意義。
-
RCC
+關(guān)注
關(guān)注
0文章
93瀏覽量
26931 -
時(shí)鐘模塊
+關(guān)注
關(guān)注
1文章
50瀏覽量
14374 -
時(shí)鐘源
+關(guān)注
關(guān)注
0文章
93瀏覽量
15956
原文標(biāo)題:STM32學(xué)習(xí)筆記——RCC外設(shè)的學(xué)習(xí)和理解
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論