生態系統

Cube概覽 STM32CubeMX STM32CubeProg STM32CubeMonitor STM32CubeIDE

STM32CubeMX介紹

STM32Cube嵌入式軟件新成員——擴展功能插件


? 當前(2020年12月)最新版本
    STM32CubeMX 6.1.0,下載


? 新增功能
   1、選擇STM32H7雙核型號和STM32WL雙核型號時,可以使用插件功能。STM32H7可以分別對Cortex-M4和Cortex-M7的工程添加插件,STM32WL僅支持對CortexM4工程添加插件。
   2、例程選擇器界面更新,增加過濾項。
   3、視頻教程增加了中國區服務器,中國區客戶可以直接從STM32CubeMX觀看。


? 相關文章
   UM1718 - 使用STM32CubeMX對STM32進行配置以及生成初始化代碼
   UM2739 - 如何使用STM32Pack Creator工具生成STM32CubeMX的插件包


概覽

STM32CubeMX是STM32Cube工具家族中的一員,從MCU選型,引腳配置,系統時鐘以及外設時鐘設置,到外設參數配置,中間件參數配置,它給STM32開發者們提供了一種簡單,方便,并且直觀的方式來完成這些工作。

所有的配置完成后,它還可以根據所選的IDE生成對應的工程和初始化C代碼。除此以外,STM32CubeMX還提供了功耗計算工具,可作為產品設計中功耗評估的參考。

如何開始新工程 

如何開始一個新的STM32CubeMX工程?
STM32CubeMX提供了四種方式,如下圖。


? 從選擇MCU/MPU型號開始
在“MCU/MPU Selector”標簽頁下,可以按照Flash/RAM大小,外設,封裝,價格等條件來篩選符合應用需求的產品型號。
對于人工智能的應用,可以使能AI篩選項后,選擇要使用的神經網絡模型,拓撲結構和壓縮比,STM32CubeMX會計算大致需要的FLASH和RAM大小,同時在右側的列表欄中列出滿足要求的MCU型號。
從STM32CubeMX5.5版本開始,“MCU/MPU Selector”標簽頁中,不再包含圖形應用MCU選型工具,中間件中也不再包含“Graphics”項。TouchGFX Generator以X-CUBE-TOUCHGFX插件的形式集成到STM32CubeMX中,可以根據最新的STM32Cube固件庫以及用戶所選的圖形設置和開發環境生成自定義的項目。
? 從選擇MCU開發板開始
在“Board Selector”標簽頁下,可以按照開發板類型,板載MCU/MPU的系列,MCU/MPU支持的外設和Flash/RAM大小選擇某個開發板,新建一個基于該開發板的STM32CubeMX工程。STM32CubeMX將自動根據該開發板默認硬件配置,初始化對應的外設。比如,Nucleo-H743ZI板上默認用到了以太網接口,那么選擇Nucleo-H743ZI板后新建的STM32CubeMX工程默認就已經配置好了以太網外設。
? 從選擇例程開始
在“Example Selector”標簽頁下,可以通過各個過濾項,來選擇一個運行在某個具體開發板上的例程來創建一個工程。比如,選擇運行在Nucleo-H743ZI板上的GPIO-EXTI例程后,STM32CubeMX可以自動幫你生成IAR,KEIL或者SW4STM32工程,直接編譯就可以運行。從6.0.0版本開始提供該功能。
? 從MCU交叉選擇器開始
在“Cross Selector”標簽頁下,可以幫助開發者找到能夠替換當前使用的MCU/MPU的STM32產品。并且可以選擇多個型號進行比較。


可以從”File-->New Project”菜單,或者首頁的快速鏈接進入建立新工程的窗口,然后根據需要選擇這四種方式中的任一種來開始新建STM32CubeMX工程。

例程選擇器

以選擇一個例程的方式來新建STM32CubeMX工程,是CubeMX V6.0.0推出的新功能,下面我們就來了解一下這個新功能。該功能將STM32Cube庫里的例程,集成進了STM32CubeMX,用戶可以在“Example Selector”標簽頁,通過左邊一欄的過濾項,選擇一個可以運行在指定開發板的例程,STM32CubeMX就可以幫我們創建該例程對應的IDE工程。對于部分例程還會創建對應的CubeMX工程(.ioc),用戶可以基于STM32CubeMX工程進一步修改或者增加其他外設的配置。


下圖是“Example Selector”標簽頁的界面,左邊的過濾項欄,包括兩大部分:第一部分是開發板相關的過濾項,有開發板類型和MCU系列的選擇;第二部分是工程相關的過濾項,有IED的選擇,工程類型選擇(外設例程,應用例程和開發板的Demo。這三個類型分別對應STM32Cube庫中Project下的Example,Applications和Demonstrations目錄下的例程),以及中間件和外設驅動庫的選擇等。


右下方是滿足當前設定條件的所有例程的列表,當選中某個例程后,在右上方就會顯示對該例程的描述,需要的STM32Cube庫版本,以及對應開發板的文檔鏈接。點擊例程列表第一列的五角星圖標,還可以將該例程加入收藏,方便下次調出。

下面,我們將舉例說明如何創建一個運行在Nucleo-H743ZI開發板上的GPIO_EXTI例程。


進入“Example-Selector”后,首先通過設定過濾項來縮小選擇范圍。我們通過關鍵字指定要搜索的是GPIO例程,并指定開發板類型為Nucleo-144,板載MCU為STM32H743ZI。然后在右側的列表中就可以看到只有兩個滿足條件的例程,其中有一個GPIO_EXTI例程。


選中該例程,再點擊上方的“Start Project”。


在STM32CubeMX創建工程的過程中,會跳出一個對話框,在該對話框里可以設置創建工程時需要使用的Cube庫的源文件位置(一般使用Cube庫默認安裝的位置)和目標工程的路徑,這里我們都使用它的默認設置,然后點擊“OK”。

工程創建成功后,會跳出工程創建成功的對話框,并且在該對話框的下拉列表中顯示:已經創建好IAR,KEIL和SW4STM32三個IDE工程(下拉菜單中的“explorer”指僅打開所創建的工程目錄)??梢匀芜x一個打開,我們選擇IAR(EWARM)工程,點擊OK,就會自動打開對應的IAR工程了。


對于一些較新的產品系列,CubeMX在創建所選擇的例程時,還會創建STM32CubeIDE的工程,以及STM32CubeMX工程??梢灾苯哟蜷_創建好的STM32CubeMX工程,在其之上修改或添加其他功能。

是否支持同時創建STM32CubeMX工程,可以通過例程說明中的STM32CubeMX版本一項看出,如果標有具體的STM32CubeMX版本,則說明最后會生成STM32CubeMX工程,否則就不會生成STM32CubeMX工程。


引腳配置

通過前面所說的幾種方式,創建一個新的STM32CubeMX工程后,就會打開下圖中的這個配置窗口。配置窗口有四個標簽頁分別是:“pinout&Configuration”,“Clock Configuration”,“Project Manager”,“Tools“。


在” pinout&Configuration“標簽下,可以使能需要的外設,并進行配置;“Clock Configuration”頁提供了圖形化的時鐘配置工具;在” Project Manager“頁可以對要生成的工程進行配置;”Tools “標簽頁提供了功耗評估工具,可以根據添加的運行模式及持續時間,計算出系統的平均功耗以及電池的壽命。此為理論計算值,可作為產品設計的參考。下面我們就來逐個了解其功能。


我們先來看一下“Pinout&Configuration”標簽頁,在該標簽頁的左邊一欄,所有的外設被分成:系統內核,模擬,定時器,通信,多媒體,安全和計算幾個組進行顯示。比如,點開通信(connectivity)這個組,就可以串口,I2C這些外設。


freeRTOS,  FATFS等協議棧在Middleware分組下。右邊默認顯示的一個MCU的引腳分配圖,在左邊欄使能了某個外設后,STM32CubeMx便會自動為這些外設分配管腳,并該圖對應的引腳標記為綠色。也可以直接在這個引腳分配圖中點擊要配置的管腳,在下拉列表中手動為管腳選擇功能。


時鐘樹初始化

在“Clock Configuration”標簽頁面,我們看到的是整個MCU的時鐘樹結構,包括系統的時鐘源有哪些,時鐘路徑,分頻和倍頻過程等。

在這里,我們可以配置系統工作時鐘和各個外設的時鐘。如果使用PLLCLK作為系統時鐘源,設置好HCLK總線時鐘頻率后,STM32CubeMX會自動計算分頻因子。時鐘配置異常時,還會有錯誤提示。


外設配置

在“Pinout&Configuration”標簽頁選中某個外設后,右側就會出現對應的配置界面,可以對外設的運行參數,DMA和中斷進行配置。比如圖中的USART3,首先選擇工作模式為異步(Asynchronous)模式,然后在下方的參數配置欄中,對波特率,數據長度,奇偶校驗,停止位以及其他一些高級參數進行設置。

在”NVIC Setting”, “DMA Setting”標簽頁下,還可以設置中斷和使能DMA?!癎PIO Setting”標簽頁下可以看到當前分配給該外設的引腳以及配置情況。


左側外設列表中,通過不同的顏色和圖標提示當前外設的配置情況:綠色的對勾表示當前外設的所有參數已經配置完成,紫色的交叉圖標,表示配置尚未完成。橘黃色的感嘆號圖標,表示由于引腳沖突等原因,當前外設至少有一個模式不可用。而紫色的禁止圖標,表示當前外設的所有模式都不可用。


中間件配置

在“Pinout&Configuration”標簽頁的“Middleware”中,用戶可以選擇需要使用的中間件并進行配置,比如FreeRTOS,以太網協議棧Lwip,USB協議棧,文件系統等。


有可能你會看到某些中間件處于不可選狀態,這是因為這些中間件的使用和一些硬件外設相關,需要先使能這些外設。將鼠標移到想使能的中間件名稱上面,稍等幾秒,就會出現一個灰色的文字框,其中就包含了需要使能哪些外設的提示。


代碼生成

所有的參數配置完成后,就可以讓STM32CubeMX來生成初始化的工程了。


在”Project Manager”標簽頁下,有三大類配置,分別在三個子標簽頁下。在“Project”頁下,可以設定項目名稱,項目位置,選擇工具鏈和固件版本等;在“Code Generator”頁下,可以設置生成代碼的相關選項,比如是否拷貝相關的庫文件,重新生成代碼時,如何處理之前生成的文件等;


在“Advanced Settings”頁面下,可以對要生成的初始化代碼做進一步的設置,比如使用HAL還是LL驅動,生成的初始化代碼是否是靜態函數,是否在主函數里調用等。


所有的參數都設置好后,點擊“GENERATE CODE”,STM32CubeMX就開始創建工程了。


下面我們來看一下在“Project Manager”標簽頁下需要注意的一些配置項。


1. 選擇不同的項目結構
“Project”頁的“Application structure”項可以設置兩種不同的項目工程文件結構。


“Basic”結構:適合沒有使用中間件或者只使用了一種中間件的項目。用戶代碼分為Src和Inc兩個文件夾,和IDE文件夾位于同一層,這種結構跟Cube庫中的例程的文件結構類似。


“Advanced”結構的構成如下圖中所示,用戶應用邏輯代碼放在Core文件夾下,每個中間件的適配文件各自放在獨立的文件夾內(比如圖中的USB_HOST),并分為和硬件平臺相關的Target部分以及和應用相關的App部分,這種結構適合使用了多個中間件的項目,使得項目的集成更加容易。

2. 選擇不同的Cube庫版本
STM32CubeMX生成工程的時候,默認會使用當前最新的Cube庫。如果想使用不同的Cube庫版本,可以取消勾選“Use Default Firmware Location”,然后,點擊Browse,在本地電腦中選擇另一個版本的Cube庫。

3. 設置代碼相關選項
下圖是“Code Generator”標簽頁的默認設置。

STM32CubeMX默認會將Cube庫中HAL文件夾的所有文件,和使用到的中間件文件都拷貝到用戶項目中。如果不想拷貝這么多文件,可以選擇“Copy only the necessary library files”,讓STM32CubeMX僅拷貝必須的文件,比如用戶代碼只用到了SPI,就只拷貝HAL文件夾中的SPI驅動文件。甚至可以選擇“Add necessary library files as reference in the toolchain project configuration file”,不拷貝任何文件,僅建立和Cube庫中文件的鏈接。


在STM32CubeMX生成的工程中,添加用戶自己的代碼,必須將代碼放在由/*USER CODE BEGIN */和/* USER CODE END */標識的用戶代碼區,這樣當再次通過STM32CubeMX生成代碼的時候,用戶添加的代碼才不會被清除,并且一定要保證“Keep User Code when re-generating”項處于勾選狀態。


通過“Generate peripheral initialization as a pair of .c/.h files per peripheral”可以選擇是否將所有外設初始化的代碼放在一個文件,還是分開放在獨立的.c/.h文件。


當修改配置后重新生成工程時,默認會刪除不再需要的文件,也可以通過取消勾選“Delete previously generated files when not re-generated”,在下次重新生成工程時,保留這些文件。


為了優化系統的功耗,我們一般建議將MCU未使用的GPIO口初始化為模擬輸入,在STM32CubeMX中,可以通過勾選“Set all free pins as analog to optimize power consumption ”,讓其自動生成這部分代碼。


4. 高級設置
STM32Cube庫里提供有HAL和LL兩類底層驅動接口,HAL驅動的移植性更好,但代碼量大,而LL驅動提供高度優化,寄存器層面的訪問,代碼量小,效率高。使用LL驅動接口需要密切結合用戶參考手冊,與底層硬件結合度高,移植工作量也會增加。這兩類驅動接口,可以在“Advanced Settings”標簽頁下進行選擇。


在該標簽頁下,還列出了STM32CubeMX將會生成的初始化函數,可以在這里設置是否將該函數定義為靜態函數,是否在main函數中調用該初始化函數。


在最右邊一列中,還可以設置是否使用某個外設的callback函數,如果設置為enable,則stm32xxxx_hal_conf.h 文件中對應的宏定義為1。


功耗計算

STM32CubeMX還有一個有用的功能:功耗評估。在”Tools-PCC“標簽頁下,功耗評估工具頁面中:選擇電池的容量,添加運行模式及持續時間,CubeMX將會計算出系統的平均功耗以及電池的壽命。此為理論計算值,可作為產品設計的參考。

關于該工具的具體使用方法可以參考以下培訓內容中的功耗測量部分:
? STM32 低功耗產品培訓:03- 動手實驗 使用STM32CubeMX建立低功耗工程以及功耗實測
CubeMX生成BLE應用(一)

功能擴展插件

除了配置GPIO口,外設以及中間件以外,STM32CubeMX還支持通過安裝插件的方式來擴展更多的軟件功能。功能擴展插件可以是ST或第三方提供。


在STM32CubeMX的“Embedded Software Packages Manager”窗口的“STMicroelectronics”標簽頁下可以找到所有ST提供的插件,同時你也可以安裝第三方提供的STM32Cube插件。安裝好插件后,就可以在當前的STM32CubeMX工程中,添加插件組件,并進行配置了。

請參考“STM32Cube嵌入式軟件新成員——擴展功能插件”,了解關于STM32Cube功能擴展插件更詳細的介紹以及舉例說明。


相關資源

最后,我們為大家整理了關于STM32CubeMX使用的官方文檔,以及ST本地工程師們準備的和STM32CubeMX使用相關的培訓材料和實戰經驗。從這些與具體應用相關的技術文檔中,大家可以了解到更多的STM32CubeMX使用方法和技巧。


1. STM32CubeMX自帶視頻教程
STM32CubeMX中自帶了不少關于STM32CubeMX使用方法和技巧的小視頻,比如如何配置時鐘樹,FreeRTOS配置等等。后續還在不斷增加中。
從Help菜單進入,選擇Tutorial Videos菜單,就可以看到所有視頻教程。
中國區的用戶,需要在左上方的下拉菜單中,選擇www.xffzs.cn服務器,然后就可以直接點擊進行觀看了。

2. 用戶手冊/應用筆記


                                                                                  用戶手冊/應用筆記
UM1718STM32CubeMX for STM32 configuration and initialization C code generation
《使用STM32CubeMX對STM32進行配置以及生成初始化代碼》
UM2739How to create a software pack enhanced for STM32CubeMX using STM32 Pack Creator tool
《如何使用STM32Pack Creator工具生成STM32CubeMX的插件包》
AN5418How to build a simple USB-PD sink application with STM32CubeMX
《使用STM32CubeMX構建一個簡單的USB-PD接收器應用程序》
AN5426Migrating graphics middleware projects from STM32CubeMX 5.4.0 to STM32CubeMX 5.5.0
《將圖形中間組件從STM32CubeMX5.4.0移植到STM32CubeMX5.5.0》

2. 培訓資料

類別
名稱
培訓STM32CubeMX培訓:配置詳解/功耗計算/主要特性
培訓STM32CubeMX培訓:安裝/軟件包架構/硬件抽象層
培訓STM32 低功耗產品培訓:03- 動手實驗 使用STM32CubeMX建立低功耗工程,以及功耗實測
LAT基于STM32CubeMX開發U盤訪問應用
LAT使用STM32CubeMX實現USB虛擬串口環回測試功能
LAT從零開始使用CubeMX創建以太網工程

請登錄www.xffzs.cn,到“設計資源->本地化資源”下載


3. 視頻資料

(0)
評論
待審核
請先登錄
在线观看网站深夜免费,欧美人配日本人配种视频,真实偷拍走光福利无删减视频,女人自熨全过程免费视频