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目前重點打造的工具,目的就是為了方便開發者,節約時間,提高開發效率
官方地址:https://www.st.com/stm32cubemx
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。
地址:https://www.java.com/en/download/manual.jsp
下載STM32CubeMx和HAL庫
官方地址:http://www.st.com/stm32cubemx
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目前重點打造的工具,目的就是為了方便開發者,節約時間,提高開發效率
官方地址:https://www.st.com/stm32cubemx
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。
地址:https://www.java.com/en/download/manual.jsp
下載STM32CubeMx和HAL庫
官方地址:http://www.st.com/stm32cubemx
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上面進行一次配置呢?