初學stm32,寫個筆記,便於總結和記憶,就醬。
時鐘配置是每個程式都需要的部分
通常寫成以下的形式
1.初始化rcc
2.使能hse(hse的精度比hsi要高,一般所用到的時鐘頻率都是從hse裡分頻出來的,當hse故障時stm32會自動的轉到hsi,具體參考datasheet)
3.等待hse穩定後,進行後續的配置(由於hse 的**一般是外部晶振之類的)
4.使能flash預讀快取,設定flash延遲週期(不屬於時鐘部分,但是一般會放在這裡,具體原因尚不明確
5.預設hclk pclk2 plck1 (還有其他的一些時鐘,這裡只舉了最通用的
6. 配置pll
7.等待pll穩定後,作為sysclk的輸入源
8.按需配置(使能)需要的時鐘比如 rcc_apb2periphclockcmd rcc_apb1periphclockcmd 等等
模板大致如下:
void rcc_configuration(void)
rcc_sysclkconfig(rcc_sysclksource_pllclk);
while(rcc_getsysclksource() != 0x08)
}rcc_apb2periphclockcmd(u32 rcc_apb2periph, functionalstate newstate);
} 時鐘的配置並不難,只要看懂了datasheet上的時鐘樹就能理解了
STM32時鐘配置
大家都知道在使用微控制器時,時鐘速度決定於外部晶振或內部rc振盪電路的頻率,是不可以改變的。而arm的出現打破了這一傳統的法則,可以通過軟體隨意改變時鐘速度。這一出現讓我們的設計更加靈活,但是也給我們的設計增加了複雜性。為了讓使用者能夠更簡單的使用這一功能,stm32的庫函式已經為我們設計的更加簡單...
STM32時鐘系統
下面我們根據這張圖說說有關stm32時鐘系統的那些事 io uint32 t cr hsi,hse,css,pll等的使能和就緒標誌位 io uint32 t cfgr pll等的時鐘源選擇,分頻係數設定 io uint32 t ahbenr dma,sdio等時鐘使能 io uint32 t ap...
stm32時鐘分割
不太明白 1 tim perscaler來設定預分頻係數 2 tim clockdivision來設定時鐘分割 時鐘分頻因子 3 tim countermode來設定計數器模式 時鐘分割定義的是在定時器時鐘頻率 ck int 與數字濾波器 etr,tix 使用的取樣頻率之間的分頻比例。tim clo...