1- STM32 HAL庫學習 GPIO配置點亮LED燈


STM32三種庫:

庫的類型:

ST已經推出了三種庫函數,以方便客戶快速開發STM32系列MCU。從15、16年開始,ST逐漸停止了對標准外設庫的更新和維護,轉向了HAL和LL庫。
(1) 標准外設驅動庫SPL                     Standard Peripheral Library
(2) Cube HAL                                     Hardware Abstraction Layer硬件抽象層庫
(3) Cube LL以及直接操作寄存器       Low-layer底層庫

幾種庫的區別:

①Cube LL庫的效率優於HAL庫的,幾乎和直接寫寄存器的效率相差無幾。

②HAL庫函數因為要顧及整個STM32系列間的代碼高度兼容與可移植性,代碼相對龐大。對於剛接觸STM32的人來說,非常易於上手做些基本的評估和驗證,入門快捷。

③LL庫的出現,是對HAL庫的有力補充。相比HAL庫用戶,LL庫用戶需要對MCU及相應外設有更為細致的了解

 

目前,STM32cubeMX不但支持基於HAL庫的初始化文件的生成,也已支持基於LL庫的初始化文件及工程的生成,對於已經比較熟悉STM32應用或關注代碼效率的開發人員來說,可以優先考慮使用LL庫。

 

 

STM32CubeMX:

STM32CubeMX是一個圖形化的軟件配置工具,使用圖形向導可以生成STM32初始化代碼工程。STM32CubeMX這個工具是ST目前重點打造的工具,目的就是為了方便開發者,節約時間,提高開發效率

官方地址:

STM32CubeMX特性:

1.直觀的選擇 STM32 微控制器(MCU)和微處理器(MPU)。

2.豐富易用的圖形化界面: -自動解決配置沖突 -具有參數約束動態驗證的外設和中間件功能模式 -時鍾樹與配置的動態驗證 -功耗預測

3.生成初始化代碼工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

4.針對部分MPU生成Linux設備樹。

5.可獨立運行在Windows、Linux和macOS上使用,或作為 Eclipse 插件使用。

 

 

安裝 JRE:

安裝(安裝一直下一步即可)

由於 STM32CubeMX 軟件是基於 JAVA 環境運行的,所以需要安裝 JRE (Java Runtime Environment)才能使用, 建議到官網下載最新版本JRE。

地址:

 

 

下載STM32CubeMx和HAL庫

官方地址:

HAL庫下載:

 

 

 CubeMX下載並安裝(安裝一直下一步即可):

 

 

HAL庫的安裝:(LL庫也在)

HAL庫,也可理解為軟件包,有在線安裝、離線安裝兩種方式。

在線安裝

打開安裝好的 STM32CubeMX 軟件, 進入庫管理界面(Help -> Manage embedded...),會有一個列表, 勾選上你要安裝的HAL庫, 點擊“Install Now” 直到安裝成功。 如下圖:

這種方式比較簡單,需要聯網在線下載,可能需要等待一段時間。如果刷新之后,可以看到最新版本,以及一些老版本HAL庫。

離線安裝:

離線安裝的前提是需要下載好離線包,方法有兩種:1.從庫管理界面直接導入離線包。2.直接解壓離線包到指定路徑下。

1.導入離線包

 

2.直接解壓 Help -> Updater Settings得到HAL庫路徑(直接解壓HAL庫離線包,注意路徑、文件夾名需一致)

 

------------恢復內容開始------------

STM32三種庫:

庫的類型:

ST已經推出了三種庫函數,以方便客戶快速開發STM32系列MCU。從15、16年開始,ST逐漸停止了對標准外設庫的更新和維護,轉向了HAL和LL庫。
(1) 標准外設驅動庫SPL                     Standard Peripheral Library
(2) Cube HAL                                     Hardware Abstraction Layer硬件抽象層庫
(3) Cube LL以及直接操作寄存器       Low-layer底層庫

幾種庫的區別:

①Cube LL庫的效率優於HAL庫的,幾乎和直接寫寄存器的效率相差無幾。

②HAL庫函數因為要顧及整個STM32系列間的代碼高度兼容與可移植性,代碼相對龐大。對於剛接觸STM32的人來說,非常易於上手做些基本的評估和驗證,入門快捷。

③LL庫的出現,是對HAL庫的有力補充。相比HAL庫用戶,LL庫用戶需要對MCU及相應外設有更為細致的了解

 

目前,STM32cubeMX不但支持基於HAL庫的初始化文件的生成,也已支持基於LL庫的初始化文件及工程的生成,對於已經比較熟悉STM32應用或關注代碼效率的開發人員來說,可以優先考慮使用LL庫。

 

 

STM32CubeMX:

STM32CubeMX是一個圖形化的軟件配置工具,使用圖形向導可以生成STM32初始化代碼工程。STM32CubeMX這個工具是ST目前重點打造的工具,目的就是為了方便開發者,節約時間,提高開發效率

官方地址:

STM32CubeMX特性:

1.直觀的選擇 STM32 微控制器(MCU)和微處理器(MPU)。

2.豐富易用的圖形化界面: -自動解決配置沖突 -具有參數約束動態驗證的外設和中間件功能模式 -時鍾樹與配置的動態驗證 -功耗預測

3.生成初始化代碼工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

4.針對部分MPU生成Linux設備樹。

5.可獨立運行在Windows、Linux和macOS上使用,或作為 Eclipse 插件使用。

 

 

安裝 JRE:

安裝(安裝一直下一步即可)

由於 STM32CubeMX 軟件是基於 JAVA 環境運行的,所以需要安裝 JRE (Java Runtime Environment)才能使用, 建議到官網下載最新版本JRE。

地址:

 

 

下載STM32CubeMx和HAL庫

官方地址:

HAL庫下載:

 

 

 CubeMX下載並安裝(安裝一直下一步即可):

 

 

HAL庫的安裝:(LL庫也在)

HAL庫,也可理解為軟件包,有在線安裝、離線安裝兩種方式。

在線安裝

打開安裝好的 STM32CubeMX 軟件, 進入庫管理界面(Help -> Manage embedded...),會有一個列表, 勾選上你要安裝的HAL庫, 點擊“Install Now” 直到安裝成功。 如下圖:

這種方式比較簡單,需要聯網在線下載,可能需要等待一段時間。如果刷新之后,可以看到最新版本,以及一些老版本HAL庫。

離線安裝:

離線安裝的前提是需要下載好離線包,方法有兩種:1.從庫管理界面直接導入離線包。2.直接解壓離線包到指定路徑下。

1.導入離線包

 

2.直接解壓 Help -> Updater Settings得到HAL庫路徑(直接解壓HAL庫離線包,注意路徑、文件夾名需一致)

 

 

創建工程:

選擇自己型號MCU,到生成代碼並成功運行的創建過程

進入MCU選擇器:(進入選擇器時會聯網更新數據庫,可能需要等待一下)

 選擇對應型號MCU

 

 

 時鍾源選擇

 如果選擇使用外部高速時鍾(HSE),則需要在System Core中配置RCC(如下圖)。如果使用默認內部時鍾(HSI),這一步可以略過。

 

 選擇GPIO(LED)引腳

 

配置時鍾Clock

STM32CubeMX配置時鍾的界面非常方便,有很多提示(比如最大時鍾),很多地方直接點擊選擇就行了。

默認高速時鍾是使用內部(HSI),而且CPU時鍾配置的比較低。以我選擇的STM32F103,外部8M晶振為例(如下圖)。

 

 工程管理

 工程管理器的內容比較多,大部分都默認即可,這里講述幾個要點(如下圖),更多選項后期詳細講述。

 

生成代碼

以上操作就基本配置完成了一個簡單的Demo工程,只需要點擊“生成代碼”即可。

 

 添加代碼

 當然,以上生成的代碼還不夠完善,需要添加自己的應用代碼

 

生成的MDK-ARM工程,編譯下載之后,默認是不會運行代碼,需要重新復位一次才能運行,或你自己配置一下(如下圖)。

 

 

 那么是不是每改變引腳或功能時,都要在CubeMX上面進行一次配置呢?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM