STM32時鐘模塊 STM32F103RCT6

    跟51相比較STM32的時鐘模塊變得比較複雜起來這主要得益於STM強大的各種功能。對於不同的模塊需要用到的時鐘頻率是不一樣的。而較高的頻率會造成更多的能量的浪費。以下是我在學習STM32過程中的總結。

    首先我們要明白各個時鐘模塊的時鐘來源。下面這張圖是我調用了原子哥的參考手冊裏面的圖。


    首先我們來聊一下時鐘的來源(圖中標紅了的5個數據),時鐘源一共有5個。其中的PLLCLK(圖中的5號時鐘源)是從其他的時鐘源轉換過來的。下面我分別對這5個時鐘源進行一下講解。

        (1)HSI圖中的1號時鐘源,是內部高速時鐘。其時鐘頻率爲8MHZ

        (2)HSE爲高速外部時鐘,可以接4-16MHZ的晶振(芯片PD0和PD1之間所接的晶振)。

(3)LSI低速內部時鐘,40KHZ 是獨立的看門狗唯一的時鐘源,同時也可以作爲RTC的時鐘源

(4)LSE低速外部時鐘源,外接32.768KHZ的晶振(PC14和PC15引腳之間),作爲RTC的主要時鐘源

(5)PLL 時鐘來源爲HSI/2、HSE、HSE/2


瞭解了時鐘的來源,那麼接下來我們就來了解一下這些時鐘是如何跟外設相連接起來的。

(1)通過  MCO口(PA8)輸出  是用來選擇以下時鐘(PLL二分頻、HSI、HSE、系統時鐘)輸出用於供給其他外設使用的

(2)作爲  RTC時鐘源  (來源爲LSI、LSE、HSE/128)

        (3)作爲  USB時鐘 通過PLL時鐘源經過1或者1.5倍分頻即可得到(USB口所需時鐘爲48MHZ)

(4)SYSCLK時鐘來源爲PLL、HSI、HSE,最大頻率爲72MHZ 可以超頻。


這裏的SYSCLK所連接的外設很多下面我仔一一做詳解

①經過8分頻送給cortex的系統時鐘即systic

②直接送給cortex作爲空閒運行時鐘

③送給APB1分頻器,APB1輸出一路供APB1外設使用(PCLK1最大頻率爲36MHZ),另一路供給定時器(tim2.3.4)倍頻使用

④送給APB2分頻器,APB2輸出一路供APB2外設使用(PCLK2,最大頻率爲72MHZ)另一路送給定時器tim1使用


對APB1和APB2所連接的外設這裏做進一步講解 APB1上面接的是低速外設,APB2上面接的是高速外設。具體見下

①APB1:CAN,USB,I²C1,I²C2,UART2,UART3

②UART1,SPI1,TIMER1,ADC1,ADC2,所有普通IO口,第二功能IO口等。


----------------------------------------------------------------------------------------------------------------------------------------------------

以上是我根據原子哥的資料做的總結






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章