STM32筆記(3)時鐘系統簡介

時鐘系統簡介

在 STM32 中,有五個時鐘源(即時鐘的來源),爲 HSI、 HSE、 LSI、 LSE、 PLL。 從時鐘頻率來分可以分爲高速時鐘源( HIS, HSE 以及 PLL)和低速時鐘源( LSI 和 LSE ),來源可分爲外部時鐘源和內部時鐘源,外部時鐘源就是從外部通過接晶振的方式獲取時鐘源,其中 HSE 和 LSE 是外部時鐘源 ,HSI,LSI,PLL是內部時鐘。

晶振:集成了晶體及振盪電路的有源器件
作用:晶振是給單片機提供工作信號脈衝的。這個脈衝就是單片機的工作速度。

STM32 的時鐘系統圖 :

HSI RC:高速內部時鐘HSE Osc:高速外部時鐘(通過外接晶振產生)

時鐘源簡介

① HSI(High Speed Internal Clock Signal) 是高速內部時鐘, 內置可關閉的RC 振盪器, 頻率約爲 8MHz。
② HSE (High Speed External Clock Signal)是高速外部時鐘, 可接石英 /陶瓷諧振器,或者接外部時鐘源,頻率範圍爲4MHz~16MHz。
③ LSI(Low Speed Internal Clock Signal) 是低速內部時鐘, 內置可關閉 RC 振盪器,頻率爲 40kHz。 獨立看門狗的時鐘源只能是 LSI,同時 LSI 還可以作爲 RTC 的時鐘源。

看門狗:讓微控制器在意外情況如軟件死循環時重啓,本質是一個計數器,計數溢出後復位。

④ LSE (Low Speed External Clock Signal)是低速外部時鐘,接頻率爲 32.768kHz 的石英晶體。 主要是 RTC 的時鐘源。
⑤ PLL 爲鎖相環倍頻輸出,本身不是一個獨立的時鐘源,其時鐘輸入源爲 HSI/2、 HSE 或者 HSE/2。倍頻可選擇爲 2~16 倍,但是其輸出頻率最大不得超過 72MHz。
(主頻=倍頻/分頻*外頻)

A~E 爲需要時鐘源的各個外設以及系統 .

其中C處 USB 的時鐘是來自 PLL 時鐘源。 STM32 中有一個全速功能的 USB 模塊,其串行接口引擎需要一個頻率爲 48MHz 的時鐘源。該時鐘源只能從 PLL 輸出端獲取,可以選擇爲 1.5 分頻或者 1 分頻,也就是,當需要使用 USB模塊時, PLL 必須使能,並且時鐘頻率配置爲 48MHz 或 72MHz。

E處指其它所有外設,其中APB1 上面連接的是低速外設,包括電源接口、備份接口、 CAN、 USB、 I2C1、 I2C2、 UART2、 UART3 等等, 而APB2 上面連接的是高速外設,包括 UART1、 SPI1、 Timer1、 ADC1、 ADC2、所有普通 IO 口(PA~PE)、第二功能 IO 口等。

當需要使用某外設時,一定要先使能對應的時鐘

相關寄存器控制

typedef struct
{
  __IO uint32_t CR;//HSL,HSE,CSS,PLL等的使能和就緒標誌(常用)
  __IO uint32_t CFGR;//PLL等的時鐘源選擇及分頻係數設定(常用)
  __IO uint32_t CIR;//清除/使能時鐘就緒中斷
  __IO uint32_t APB2RSTR;//APB2線上外設復位
  __IO uint32_t APB1RSTR;//APB1線上外設復位
  __IO uint32_t AHBENR;//DMA,SDIO等時鐘使能(常用)
  __IO uint32_t APB2ENR;//APB2線上外設時鐘使能(常用)
  __IO uint32_t APB1ENR;//APB1線上外設時鐘使能(常用)
  __IO uint32_t BDCR;//備份域控制寄存器
  __IO uint32_t CSR;//控制狀態寄存器
} RCC_TypeDef;

寄存器詳細資料參考相應手冊

附:
時鐘源控制相關庫函數

系統時鐘配置文件編寫

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