30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

在學會使用HAL庫程式設計前,先要進行一些準備工作,包括程式設計環境的搭建,STM32開發板的硬體基本原理了解等。本次學習側重於軟體程式設計,硬體部分原理在後續的學習中繼續展開。

一 HAL庫的使用環境搭建

1 CubeMX軟體下載和安裝

從ST的官網上下載STM32CubeMX軟體,根據自己電腦的作業系統選擇下載的軟體版本,然後在電腦上安裝好該軟體,開啟軟體的介面如下。STM32CubeMX軟體主要實現微控制器底層配置,實現BSP層程式碼自動生成。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

CubeMX軟體的啟動介面

2 IAR軟體安裝

IAR、MDK或TrueStudio等嵌入式軟體的下載和安裝,該軟體主要實現程式碼的編譯,生成可燒錄檔案,下載到微控制器中執行。本實驗都使用IAR FOR ARM 8。0版本進行開發,具體軟體的安裝教程,本實驗略過,有興趣的同學可以自行去官網下載30天試用評估版。也可以使用STM32CubeIDE這款軟體,這是一款免費軟體,基於Eclipse+GUN的編譯軟體,可以很好的解決版權問題。

二 建立工程

利用CubeMX軟體來建議一個基於STM32的工程,由於我這次使用的板子上的晶片型號是STM32F103VGT6,所有本次實驗的工程都選擇該型號晶片。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

建立工程

1 配置時鐘

在工程建立的開始,需要對系統進行配置,即對Systick、Debug除錯口進行配置。系統基準定時採用Systick定時器,也可以選擇其他定時器來實現該功能,除錯方式採用SWD介面模式,可以節省IO口,這個根據自己板子上預留的除錯口來選擇。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

系統滴答時鐘和除錯口配置

系統引數設定好後,需要對晶片的時鐘進行配置,板子上使用外部8MHz的晶振,透過PLL倍頻後,實現主頻72MHz的時鐘訊號。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

時鐘配置

2 工程引數修改

選擇生成工程,選擇IAR工程,生成工程預設是使用ST-LINK除錯的,若是使用J-LINK除錯的同學,需要在工程中對一下引數進行修改,修改完後整個工程就可以使用了。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

選擇生成工程

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

修改為JLINK除錯工具

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

選擇JLINK的連線方式為SWD介面

三 實驗結果

工程修改完後,我們進行工程生成的檔案,檢視幾個點,看下配置程式碼是否已經生成,然後對工程進行編譯,可以看到生成的程式碼0警告、0錯誤,可以直接下載到開發板,觀察系統時鐘是否是72MHz。開啟IAR的觀察視窗,新增系統時鐘和滴答時鐘的變數,可以看到系統時鐘已是72MHz,系統滴答每1ms增加1。

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

CubeMX配置好的SWD除錯介面程式碼

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

編譯結果

30天學會STM32的HAL庫使用——第一天RCC時鐘配置篇

實驗結果

四 結論

第一天經過簡單的使用CubeMx軟體配置系統時鐘,實現了STM32F103的時鐘實現主頻72MHz,Systick定時1ms的功能,熟悉了各種軟體的使用後,第二天學習GPIO口的控制,實現4路LED燈的控制。