Stm32CubeMX快速配置與STM32HAL庫高頻詞彙(一):CubeMX使用

STM32CubeMX作爲ST官方主推的開發工具,使用圖形化的界面對單片機進行內部硬件配置,哪裏不會配置就點哪裏,更驚人的是支持STM32全系列。。。等等我要靜靜思考下人生,照這樣下去STM32的開發門檻越來越低,沒有兩把刷子還真不容易在圈子裏闖蕩

寫這個系列是因爲以前一直在用STM32的標準庫來開發F1系列,可標準庫好早就不更新了。而現在使用的型號變成了F0,可有的F0還不支持以前舊的標準庫,所以只能選擇HAL庫。下過了HAL庫進行coding時又遇到了麻煩->沒有HAL庫的中文API文檔。。嗚嗚嗚,後來瞭解到ST有官方開發工具STM32CubeMX這一說,配合HAL庫使用,圖形化的配置界面,自動生成代碼,支持多種編譯器。被吸引到有沒有?感覺好強大有沒有?簡直比瑞薩的開發工具還要方便。雖然問題的本質沒有解決,但起碼能緩解下個人的開發壓力,剩下的就看個人造化了,埋頭啃英文文檔。

另外本系列不會提及內部外設的工作原理,想了解工作方式的請看數據手冊。本系列主要介紹如何用STM32CubeMX進行快速開發及快速硬件配置,以及在開發中會用到HAL庫哪些高頻函數及用法注意事項。希望對標準庫及基本內部硬件有一定了解的觀看

進入正題,先上ST官網搜索並下載STM32CubeMX,順便也把應用手冊給下下來,英文不好的就趕緊用chrome瀏覽器吧,谷歌翻譯很給力。安裝後會提示需要java環境,按照彈出的網頁下載java環境。一切弄好後,打開應用。看着如此簡潔(kong kuang)的界面,內心簡直黑人疑問臉。。


因爲我們還沒有安裝庫文件,所以打開Help,紅框裏的“Install Patch”是從本地下載好的固件進行安裝,用不到故pass。“Check for Updates”是軟件版本的檢查更新,我當時的最新版本是MX.4.18.0。以前上論壇看見別人發帖說CubeMX有時會把用戶代碼全部誤刪掉,可一看發帖日期是一年前的了,反正在我的使用過程中沒有發生任何不快,看來ST的官方更新的改進還是蠻好的,大家在使用前最好更新到最新版本。“Install New Libraries”是從服務器下載開發固件並安裝。點進去會看見各系列的固件包,F0、F1、F2、F3、F4、F7、L0、L1、L4一應俱全,當然是選擇自己要用的系列的最新固件進行安裝,我要用的是F0,當時最新的是1.6.0


上面的都弄好後,就可以新建一個工程了,點擊界面上那個大大的“New Project”,或者“File - New Project”。還有要記得“Load Project”也是在File裏,省的以後問如何打開CubeMX的工程配置界面,後綴是.ioc。。先在上面進行大概的檢索,再到下面勾選具體的MCU型號,“Bosrd Selector”裏面還可以對ST官方的開發板進行選型,像Discovery、Nucleo、EvalBoard都是有的。而左側的“Peripheral Selection”顯示的是當前型號的硬件外設。


到這裏,可以看見正式的配置界面,圖像化的方式感覺很接地氣啊。由於沒有進行任何配置,顯得界面很空,不過我會馬上讓他充實起來的o(∩_∩)o 

由於這一篇主要是說CubeMX的使用,就暫時弄個LED和RCC時鐘配置。

點擊RCC,將高速時鐘切換成外部晶振方式Crystal,切換後可以看見軟件自動將PF0.1這兩個引腳配置成了RCC_OSC外部晶振引腳

再在右側點擊PC13引腳,配置成GPIO_Output,作爲LED的驅動引腳


是不是感覺缺少了什麼?當然是DeBug啦,硬件調試我用的ST-Link。10多塊錢一個很便宜也很好用,最重要的是還可以調試STM8,體積只有一個C8T6的大小。大一學STM8時用STVD+ST-Link,到了STM32,還是用ST-Link,是不是有一種歲月的傳承感。。。廢話少說,配置SWC、SWD引腳。而且ST-Link可以和ST官方的STM Studio配合使用,隨時查看內部變量或寄存器,可以列表作圖方便分析,可我在安裝STM Studio時失敗了,說要更新java mx......逗人玩呢這是...不買這帳了


Pinout界面配置完了,點擊Clock Configuration,看見錯綜有序的時鐘樹。選擇外部時鐘HSE,PLL倍頻選擇6,再將倍頻後的時鐘48MHz作爲系統時鐘。由於F0的額定最高頻率爲48MHz,8MHz的外部晶振,PLL就是6了。而且一旦某條時鐘線超出額定值,相應的時鐘線就會變爲紅色提醒。想超頻的可以直接修改PLL


進入下一個界面Configuration,點擊GPIO,進行引腳的具體配置。要說的都在圖裏


可能有細心的朋友會注意到這個界面的左側,跟說明一樣通俗易懂,以後用到再說。不過看着是可以簡化FATFS、FreeRTOS操作系統、硬件CRC、看門狗的配置


最後一個Power管理界面,同樣可以不用管,以後用到低功耗再說。

上面全部配置完畢後,就可以生成代碼了。不過在之前要對工程位置、開發環境、個性化進行一些設置。“Project - Settings”

切記:工程目錄不要有中文 圖裏勾選的生成格式是Keil5的,生成工程後可以被Keil5打開

儘量把“將各硬件初始化按照功能分成多個.c.h”文件勾選上,勾不勾自己體會

第3步不用管,pass掉。



這時候就可以點擊小齒輪圖標了,生成代碼


打開工程,while裏添加代碼

記得這裏的格式,只有在/* USER CODE BEGIN */ 和/* USER CODE END */之間纔是可以添加代碼段的,其餘地方都會在STM32CubeMX重編譯時進行替換與更改

在while(1)裏的Begin3和End3之間添加

HAL_Delay(500);

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,(GPIO_PinState)!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13));

就可以看到與PC13相連的LED以1Hz的頻率閃爍,Enjoy


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