眾所周知STM32有5個時鐘源HSI降传、HSE篷朵、LSI、LSE婆排、PLL声旺,其實他只有四個,因為從上圖中可以看到PLL都是由HSI或HSE提供的段只。
其中腮猖,高速時鐘(HSE和HSI)提供給芯片主體的主時鐘.低速時鐘(LSE和LSI)只是提供給芯片中的RTC(實時時鐘)及獨立看門狗使用,圖中可以看出高速時鐘也可以提供給RTC赞枕。
內(nèi)部時鐘是在芯片內(nèi)部RC振蕩器產(chǎn)生的澈缺,起振較快,所以時鐘在芯片剛上電的時候炕婶,默認(rèn)使用內(nèi)部高速時鐘姐赡。而外部時鐘信號是由外部的晶振輸入的,在精度和穩(wěn)定性上都有很大優(yōu)勢柠掂,所以上電之后我們再通過軟件配置项滑,轉(zhuǎn)而采用外部時鐘信號.
高速外部時鐘(HSE):以外部晶振作時鐘源,晶振頻率可取范圍為4~16MHz涯贞,我們一般采用8MHz的晶振枪狂。
高速內(nèi)部時鐘(HSI):由內(nèi)部RC振蕩器產(chǎn)生,頻率為8MHz宋渔,但不穩(wěn)定州疾。
低速外部時鐘(LSE):以外部晶振作時鐘源,主要提供給實時時鐘模塊皇拣,所以一般采用32.768KHz严蓖。
低速內(nèi)部時鐘(LSI):由內(nèi)部RC振蕩器產(chǎn)生,也主要提供給實時時鐘模塊,頻率大約為40KHz谈飒。
OSC_OUT和OSC_IN開始,這兩個引腳分別接到外部晶振8MHz,第一個分頻器PLLXTPRE态蒂,遇到開關(guān)PLLSRC(PLL entry
clock
source)杭措,我們可以選擇其輸出,輸出為外部高速時鐘(HSE)或是內(nèi)部高速時鐘(HSI)钾恢。這里選擇輸出為HSE手素,接著遇到鎖相環(huán)PLL,具有倍頻作用瘩蚪,在這里我們可以輸入倍頻因子PLLMUL泉懦,要是想超頻,就得在這個寄存器上做手腳啦疹瘦。
經(jīng)過PLL的時鐘稱為PLLCLK崩哩。倍頻因子我們設(shè)定為9倍頻,也就是說言沐,經(jīng)過PLL之后邓嘹,我們的時鐘從原來8MHz的
HSE變?yōu)?2MHz的PLLCLK。緊接著又遇到了一個開關(guān)SW险胰,經(jīng)過這個開關(guān)之后就是STM32的系統(tǒng)時鐘(SYSCLK)了汹押。通過這個開關(guān),可以切換SYSCLK的時鐘源起便,可以選擇為HSI棚贾、PLLCLK、HSE榆综。
我們選擇為PLLCLK時鐘妙痹,所以SYSCLK就為72MHz了。PLLCLK在輸入到SW前奖年,還流向了USB預(yù)分頻器细诸,這個分頻器輸出為USB外設(shè)的時鐘(USBCLK)÷兀回到SYSCLK震贵,SYSCLK經(jīng)過AHB預(yù)分頻器,分頻后再輸入到其它外設(shè)水评。
如輸出到稱為HCLK猩系、FCLK的時鐘,還直接輸出到SDIO外設(shè)的SDIOCLK時鐘中燥、存儲器控制器FSMC的FSMCCLK時鐘寇甸,和作為APB1、APB2的預(yù)分頻器的輸入端。GPIO外設(shè)是掛載在APB2總線上的拿霉,
APB2的時鐘是APB2預(yù)分頻器的輸出吟秩,而APB2預(yù)分頻器的時鐘來源是AHB預(yù)分頻器。因此绽淘,把APB2預(yù)分頻器設(shè)置為不分頻涵防,那么我們就可以得到GPIO外設(shè)的時鐘也等于HCLK,為72MHz了沪铭。
SYSCLK:系統(tǒng)時鐘壮池,STM32大部分器件的時鐘來源。主要由AHB預(yù)分頻器分配到各個部件杀怠。
HCLK:由AHB預(yù)分頻器直接輸出得到椰憋,它是高速總線AHB的時鐘信號,提供給存儲器赔退,DMA及cortex內(nèi)核橙依,是cortex內(nèi)核運行的時鐘,cpu主頻就是這個信號硕旗,它的大小與STM32運算速度票编,數(shù)據(jù)存取速度密切相關(guān)。
FCLK:同樣由AHB預(yù)分頻器輸出得到卵渴,是內(nèi)核的“自由運行時鐘”慧域。“自由”表現(xiàn)在它不來自時鐘 HCLK浪读,因此在HCLK時鐘停止時 FCLK
也繼續(xù)運行昔榴。它的存在,可以保證在處理器休眠時碘橘,也能夠采樣和到中斷和跟蹤休眠事件 互订,它與HCLK互相同步。
PCLK1:外設(shè)時鐘痘拆,由APB1預(yù)分頻器輸出得到仰禽,最大頻率為36MHz,提供給掛載在APB1總線上的外設(shè)纺蛆,APB1總線上的外設(shè)如下:
RCC_APB1Periph_tiM2 TIM2時鐘
RCC_APB1Periph_TIM3 TIM3時鐘
RCC_APB1Periph_TIM4 TIM4時鐘
RCC_APB1Periph_WWDG WWDG時鐘
RCC_APB1Periph_SPI2 SPI2時鐘
RCC_APB1Periph_USART2 USART2時鐘
RCC_APB1Periph_USART3 USART3時鐘
RCC_APB1Periph_I2C1 I2C1時鐘
RCC_APB1Periph_I2C2 I2C2時鐘
RCC_APB1Periph_USB USB時鐘
RCC_APB1Periph_CAN CAN時鐘
RCC_APB1Periph_BKP BKP時鐘
RCC_APB1Periph_PWR PWR時鐘
RCC_APB1Periph_ALL 全部APB1外設(shè)時鐘
PCLK2:外設(shè)時鐘吐葵,由APB2預(yù)分頻器輸出得到,最大頻率可為72MHz桥氏,提供給掛載在APB2總線上的外設(shè)温峭,APB2總線上的外設(shè)如下:
RCC_APB2Periph_AFIO 功能復(fù)用IO時鐘
RCC_APB2Periph_GPIOA GPIOA時鐘
RCC_APB2Periph_GPIOB GPIOB時鐘
RCC_APB2Periph_GPIOC GPIOC時鐘
RCC_APB2Periph_GPIOD GPIOD時鐘
RCC_APB2Periph_GPIOE GPIOE時鐘
RCC_APB2Periph_ADC1 ADC1時鐘
RCC_APB2Periph_ADC2 ADC2時鐘
RCC_APB2Periph_TIM1 TIM1時鐘
RCC_APB2Periph_SPI1 SPI1時鐘
RCC_APB2Periph_USART1 USART1時鐘
RCC_APB2Periph_ALL 全部APB2外設(shè)時鐘
最后提供一些stm32的資料方便學(xué)習(xí)參考