STM32在發(fā)售之初,也同步開(kāi)發(fā)了一套固件開(kāi)發(fā)包,其中包含了STM32開(kāi)發(fā)所需要的所有底層操作系統(tǒng),在加入這個(gè)開(kāi)發(fā)包后,開(kāi)發(fā)人員可以從寄存器的復(fù)雜操作中抽身,將全部精力投入到開(kāi)發(fā)應(yīng)用程序上。
但從51或者AVR轉(zhuǎn)而開(kāi)發(fā)STM32的人員來(lái)說(shuō),這一過(guò)程是需要適應(yīng)的,因?yàn)槟壳暗拈_(kāi)發(fā)不再以寄存器為基礎(chǔ)開(kāi)始,而是需要數(shù)據(jù)STM32的固件庫(kù),而STM32的寄存器規(guī)模龐大,會(huì)耗費(fèi)相當(dāng)多的時(shí)間去分析。并且對(duì)于后期的程序的維護(hù)也是不利的。我們將通過(guò)分析一個(gè)STM32庫(kù)函數(shù)來(lái)幫助大家進(jìn)一步理解。
這段GPIO初始化程序是在STM32開(kāi)發(fā)過(guò)程當(dāng)中經(jīng)常用到的,主要用于將GPIOA.4口初始化為推挽輸出狀態(tài),并將最大翻轉(zhuǎn)速率為調(diào)整為50MHz。下面逐一分解: