STM32CubeMX初探
前言
近來(lái)對(duì)于stm32單片機(jī)編程中,HAL庫(kù)逐漸取代標(biāo)準(zhǔn)庫(kù)成為主流的庫(kù)。標(biāo)準(zhǔn)庫(kù)支持的芯片型號(hào)有限,而且目前已經(jīng)停止支持,而HAL庫(kù)支持所有類(lèi)型的芯片,可移植性也很高,再加上有神器STM32Cube可以生成工程模板,越來(lái)越多的編程開(kāi)始從使用標(biāo)準(zhǔn)庫(kù)轉(zhuǎn)到使用HAL庫(kù)。
點(diǎn)亮第一個(gè)LED
新建工程后,在此處輸入所用到的芯片型號(hào),此處使用的STM32F407IGT6。
選好芯片型號(hào)進(jìn)入到配置界面后,需要依次進(jìn)行時(shí)鐘模塊配置、時(shí)鐘系統(tǒng)配置、GPIO引腳配置、Cortex內(nèi)核配置,才能生成工程源碼。
時(shí)鐘模塊配置
在RCC中選擇使用外部晶振作為時(shí)鐘源,完成對(duì)時(shí)鐘模塊的配置。
時(shí)鐘系統(tǒng)配置
時(shí)鐘是單片機(jī)的脈搏,需要極其重視,在stm32Cube中進(jìn)行時(shí)鐘配置實(shí)則是針對(duì)芯片手冊(cè)中的時(shí)鐘數(shù)對(duì)各個(gè)時(shí)鐘頻率、鎖相環(huán)等進(jìn)行配置。下面對(duì)F4的四個(gè)時(shí)鐘源進(jìn)行介紹。
時(shí)鐘源 | F407頻率要求 |
---|---|
HSE(高速外部振蕩器) | 4~26MHz |
LSE(低速外部振蕩器) | 32.768MHz |
HSI(高速內(nèi)部振蕩器)- | 16MHz– |
LSI(低速內(nèi)部振蕩器) | 32KHZ |
附一張?jiān)谡c(diǎn)原子參考的時(shí)鐘樹(shù)高清圖和STM32Cube中對(duì)于時(shí)鐘的配置。二者對(duì)比參考理解更深刻。要進(jìn)行配置首先要理解芯片手冊(cè)中的時(shí)鐘樹(shù),對(duì)于基礎(chǔ)的應(yīng)用來(lái)說(shuō),只需要理解SYSCLK、AHB、APB1、APB2、RTC時(shí)鐘的配置即可。
對(duì)于芯片手冊(cè)中的時(shí)鐘樹(shù),可以先看中間對(duì)于SYSCLK進(jìn)行配置的SW,可以看出,SYSCLK的來(lái)源有三個(gè),即HSI、HSE以及鎖相環(huán)的輸出,F(xiàn)407主頻最高可以達(dá)到168Mhz,僅通過(guò)HSI或者HSE來(lái)作為時(shí)鐘源很難發(fā)揮最大的效能,一般采用鎖相環(huán)進(jìn)行倍頻來(lái)得到高頻率的時(shí)鐘信號(hào)作為系統(tǒng)時(shí)鐘。
單獨(dú)看PLL鎖相環(huán),輸入可以選擇HSI和HSE,一般選用HSE。HSE進(jìn)行M分頻后輸入到鎖相環(huán)中,VCO即理解為電壓控制震蕩,xN即為放大N倍。隨后結(jié)合cube中的配置進(jìn)行理解。
上一步中以及完成了對(duì)時(shí)鐘模塊的配置,隨后在Clock Configuration中結(jié)合電路板對(duì)外部晶振頻率進(jìn)行配置,同時(shí)選擇系統(tǒng)時(shí)鐘使用鎖相環(huán)輸出。
具體配置如上圖,不考慮超頻的情況下,可達(dá)到F407最大的主頻168Mhz。
GPIO引腳配置
完成時(shí)鐘配置之后,選擇LED對(duì)應(yīng)的引腳,此處使用的是PE0。
選擇輸出模式。
下一步見(jiàn)圖,可以設(shè)置IO的輸出模式,初始電平,建議為每個(gè)IO添加Label方便進(jìn)行辨識(shí)。
此時(shí)對(duì)點(diǎn)亮一個(gè)LED的GPIO配置結(jié)束。
Cortex內(nèi)核配置
在SYS中選擇debug的方式,使用SWDIO和SWCLK進(jìn)行程序下載的選擇Serial Wire
工程生成
在Project Manager中進(jìn)行配置,設(shè)置工程名和存儲(chǔ)路徑,畫(huà)框的部分需要注意。Structure選擇Basic即可,下面的IDE要注意版本對(duì)應(yīng)。
拉到下面,包的版本需要注意,可能默認(rèn)的版本與安裝的版本不同,可以看自動(dòng)生成的路徑下面包的版本是多少再進(jìn)行設(shè)置。
在Code Generator中也需要修改默認(rèn)配置。①處默認(rèn)是勾選了copy all,這會(huì)導(dǎo)致將一些沒(méi)有用到的庫(kù)文件生成到工程中,導(dǎo)致工程龐大,編譯速度慢,按照如下配置可以只使用用到的文件,工程體積更小。
②處需要進(jìn)行勾選,勾選后會(huì)將.c和.h文件分開(kāi)存放,方便管理。
配置結(jié)束后點(diǎn)擊右上方的生成工程可以在指定文件夾下生成配置好的工程文件。
注意事項(xiàng)
編譯器版本
新版本的keil沒(méi)有版本5的編譯器,需要選用版本6。否則會(huì)導(dǎo)致編譯出錯(cuò)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-611093.html
用戶代碼位置
我們寫(xiě)的代碼要放在生成的工程中留出的對(duì)應(yīng)部分,因?yàn)橄麓胃屡渲弥匦屡渲霉こ虝r(shí),不在規(guī)定位置的代碼會(huì)被覆蓋掉。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-611093.html
到了這里,關(guān)于STM32CubeMX生成C代碼及時(shí)鐘樹(shù)配置(基于stm32f407)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!