iT邦幫忙

2021 iThome 鐵人賽

0
Arm Platforms

基於ARM-M0架構MCU之落摔檢測韌體開發系列 第 32

STM32的開發生態,Cube、HAL庫、LL庫

這個分享適合剛入門STM32的新手,快速了解STM32的開發生態
我昨天最後講到我個人建議從標準庫學,懂了後再使用STM32CubeIDE,這方法只適合要走韌體開發工程師或者有心想研究這韌體的領域,絕對不適合那種只想要快速開發有功能就覺得OK的人,功能有出來就好,就別學標準庫開發了直接用STM32CubeIDE就好,什麼暫存器看法、函示配置方法、腳位宣告等等,這些STM32CubeMX都幫你弄好好了,選好IC點一點圖片中的腳位就配置好初始化函示啦~。

接下來我盡量以我了解的東西用簡短的方式讓大家看一次就懂,先來介紹STM32Cube生態,具我昨天參加的ST線上研討會,第一是在介紹各個新出的MCU應用範圍,我這邊簡單整理,詳細資料可以去ST官網查詢。

1.STM32MP1

這顆屬於MPU,使用了Cortex-A7核心相對Cortex-M系列大幅提高性能,主要是支持使用Linux系统的用戶,內部含有GPU,下圖是從會議中的截圖MP1架構,可以看到具有雙核心A7和M4
https://ithelp.ithome.com.tw/upload/images/20211111/20141979Krs5CoAuYH.png

2.STM32H7

最高性能的MCU,具有雙核心M7和M4,480MHz和240MHz,高達2Mbytes的內部Flash

3.STM32U5

今年新出的極低功耗MCU,更高度的安全性,ADC提升到14-bit

再來聊聊STM32Cube的軟體開發工具系列

STM32CubeMX:圖形化設定工具
STM32CubeIDE:整合開發環境的IDE
STM32CubeProgrammer:燒錄程式

STM32CubeMX選定你要開發的MCU型號,在MCU圖片上點選你要使用的腳位初始化設定,STM32CubeMX也支援最新的MP1系列MPU,STM32CubeMX可幫助你產生把周邊init 好的 C project,有HAL庫和LL庫可根據使用者自行決定,我之前有提到HAL庫是標準庫的精簡版本,LL庫則是從HAL衍生出來的精簡版本,幾乎都是暫存器操作,這樣能大幅縮小原本程式容量,使用IDE還有個好處,就是不用受限於Keil5免費版本的程式大小限,太大就不讓你燒入困擾。

STM32CubeIDE是compiler tools ,但它在開新專案有整合CubeMX進去,就算沒有下載STM32CubeMX,在STM32CubeIDE裡還是會連結到STM32CubeMX我昨天在使用上沒下載STM32CubeMX,發現IDE裡面連結的MX會有些卡頓,在想是否與軟體使用時再與內部所建立的MX做連動所導致的些微卡頓,我在之後又去下載了STM32CubeMX分開使用上就比較順暢點。

總之分開使用不影響原本的專案,當使用MX視窗設定好腳會後Generate code在IDE軟體上初始化也會設定好了~
首先我先放上截圖,我設定的UART2來看看跟我使用的標準庫設定差別吧

首先是點完Generate code後的UART的初始化函式:
https://ithelp.ithome.com.tw/upload/images/20211111/20141979x2EZbVpyC2.png
再來看看我用標準庫開發自己打的UART初始化函式
https://ithelp.ithome.com.tw/upload/images/20211111/201419792Z4dseYah5.png

用IDE點一點就出來,省去了很多時間昨天用到很想跳來用IDE~,由於我有開發標準庫的經驗,我在看這自動產生的程式碼不會很陌生,也大概瞭每個地方是在做什麼事,我覺得這能力是一個韌體開發該具備的基本能力。
之後也會開始來用這IDE啦~。

昨天我在發表上的QA問答有問到,STM32L系列有提供標準庫開發資料嗎?,回答:沒有目前只有提供HAL庫和LL庫,我聽到這回答我就知道ST已經不在提供新的標準庫的程式,以LL庫來說會比標準庫效率更高,因為LL庫幾乎都在操作暫存器。

線上研討會還有提到今年MCU結合AI,也有出了STM32Cube.AI軟體,這方面我就沒很清楚了,只知道這套軟體適合原本就有AI訓練的經驗的人,套用訓練好的Mode在產生對應C code燒給MCU做結合。
我在下面附上相關的教學資料,在研討會上有人問到有沒有相關的中文學習資料,
回答:無

https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs.html

https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/Introduction_to_STM32CubeAI_MOOC.html

STM32Cube.AI影片教學:
https://www.youtube.com/playlist?list=PLnMKNibPkDnFiQd11pDFtDL2aqUZHTjto
https://www.youtube.com/playlist?list=PLnMKNibPkDnEOUdTXlDH7yWN6qyxXPsEb


上一篇
閒聊STM32CubeMX和STM32CubeIDE
系列文
基於ARM-M0架構MCU之落摔檢測韌體開發32

尚未有邦友留言

立即登入留言