91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32CubeMX介紹,功耗計(jì)算,中間件,CAD視圖

撞上電子 ? 2023-10-28 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1,概覽

STM32CubeMX是STM32Cube工具家族中的一員,從MCU/MPU選型,引腳配置,系統(tǒng)時(shí)鐘以及外設(shè)時(shí)鐘設(shè)置,到外設(shè)參數(shù)配置,中間件參數(shù)配置,它給STM32開(kāi)發(fā)者們提供了一種簡(jiǎn)單,方便,并且直觀的方式來(lái)完成這些工作。所有的配置完成后,它還可以根據(jù)所選的IDE生成對(duì)應(yīng)的工程和初始化C代碼。除此以外,STM32CubeMX還提供了功耗計(jì)算工具,可作為產(chǎn)品設(shè)計(jì)中功耗評(píng)估的參考。

0eec6132-7525-11ee-9788-92fbcf53809c.jpg2,特性

  • 內(nèi)嵌ST MCU Finder,直觀的STM32 MCU&MPU選型,Board選型,例程選型和交叉對(duì)比選型
  • 豐富易用的圖形化接口滿足多種配置,并生成相應(yīng)C代碼:
  • 引腳配置,自動(dòng)沖突處理
  • Arm Cortex-M內(nèi)核、外設(shè)的參數(shù)配置及動(dòng)態(tài)驗(yàn)證
  • 中間件模塊管理及配置
  • 時(shí)鐘樹(shù)參數(shù)配置及動(dòng)態(tài)驗(yàn)證
  • 電源功耗評(píng)估
  • Arm Cortex-M內(nèi)核MCU初始化C工程的自動(dòng)生成,適用于IAR Embedded Workbench, MDK-ARM和 STM32CubeIDE (GCC 編譯器) ,STM32CubeMX工程包含生成的初始化C代碼,STM32驅(qū)動(dòng)、依據(jù)配置的中間件和其他相關(guān)文檔
  • 下載或升級(jí)STM32Cube嵌入式軟件資源(STM32Cube Packages、STM32Cue Expansion Packages)
  • Arm Cortex-A內(nèi)核STM32微處理器部分Linux設(shè)備樹(shù)的自動(dòng)生成,DDR配置
  • 通過(guò)打開(kāi)已保存配置的工程切換MCU平臺(tái),易于MCU平臺(tái)間移植
  • 導(dǎo)出配置報(bào)告
  • 集成STM32Cube Packages在項(xiàng)目中,
  • CAD資源下載(原理圖符號(hào)、PCB封裝和3D模型)
  • 針對(duì)STM32U5系列優(yōu)化功耗的LPBAM配置
  • TrustZone友好支持
  • 中間件的參數(shù)配置USB、LwIP、FatFS、FreeRTOS、Mbed TLS等
  • 針對(duì)所有系列可進(jìn)行Thread-Safe設(shè)置;
  • 基于STM32PackCreator可以開(kāi)發(fā)更豐富的STM32Cube擴(kuò)展包
  • 獨(dú)立軟件運(yùn)行于Windows, Linux , macOS操作系統(tǒng),和64-bit Java 運(yùn)行環(huán)境

3,從選擇器開(kāi)始新工程

如何開(kāi)始一個(gè)新的STM32CubeMX工程?STM32CubeMX提供了四種方式,如下圖。

0efb467a-7525-11ee-9788-92fbcf53809c.png??從選擇MCU/MPU型號(hào)開(kāi)始

在“MCU/MPU Selector”標(biāo)簽頁(yè)下,可以按照Flash/RAM大小,外設(shè),封裝,價(jià)格等條件來(lái)篩選符合應(yīng)用需求的產(chǎn)品型號(hào)。對(duì)于人工智能的應(yīng)用,可以使能AI篩選項(xiàng)后,選擇要使用的神經(jīng)網(wǎng)絡(luò)模型,拓?fù)浣Y(jié)構(gòu)和壓縮比,STM32CubeMX會(huì)計(jì)算大致需要的FLASH和RAM大小,同時(shí)在右側(cè)的列表欄中列出滿足要求的MCU型號(hào)。從STM32CubeMX5.5版本開(kāi)始,“MCU/MPU Selector”標(biāo)簽頁(yè)中,不再包含圖形應(yīng)用MCU選型工具,中間件中也不再包含“Graphics”項(xiàng)。TouchGFX Generator以X-CUBE-TOUCHGFX插件的形式集成到STM32CubeMX中,可以根據(jù)最新的STM32Cube固件庫(kù)以及用戶所選的圖形設(shè)置和開(kāi)發(fā)環(huán)境生成自定義的項(xiàng)目。
?從選擇MCU開(kāi)發(fā)板開(kāi)始

在“Board Selector”標(biāo)簽頁(yè)下,可以按照開(kāi)發(fā)板類(lèi)型,板載MCU/MPU的系列,MCU/MPU支持的外設(shè)和Flash/RAM大小選擇某個(gè)開(kāi)發(fā)板,新建一個(gè)基于該開(kāi)發(fā)板的STM32CubeMX工程。STM32CubeMX將自動(dòng)根據(jù)該開(kāi)發(fā)板默認(rèn)硬件配置,初始化對(duì)應(yīng)的外設(shè)。比如,Nucleo-H743ZI板上默認(rèn)用到了以太網(wǎng)接口,那么選擇Nucleo-H743ZI板后新建的STM32CubeMX工程默認(rèn)就已經(jīng)配置好了以太網(wǎng)外設(shè)。
?從選擇例程開(kāi)始

在“Example Selector”標(biāo)簽頁(yè)下,可以通過(guò)各個(gè)過(guò)濾項(xiàng),來(lái)選擇一個(gè)運(yùn)行在某個(gè)具體開(kāi)發(fā)板上的例程來(lái)創(chuàng)建一個(gè)工程。比如,選擇運(yùn)行在Nucleo-H743ZI板上的GPIO-EXTI例程后,STM32CubeMX可以自動(dòng)幫你生成IAR,KEIL或者SW4STM32工程,直接編譯就可以運(yùn)行。從6.0.0版本開(kāi)始提供該功能。
?從MCU交叉選擇器開(kāi)始

在“Cross Selector”標(biāo)簽頁(yè)下,可以幫助開(kāi)發(fā)者找到能夠替換當(dāng)前使用的MCU/MPU的STM32產(chǎn)品。并且可以選擇多個(gè)型號(hào)進(jìn)行比較。

4,例程選擇器

以選擇一個(gè)例程的方式來(lái)新建STM32CubeMX工程,是CubeMX V6.0.0推出的新功能,下面我們就來(lái)了解一下這個(gè)新功能。該功能將STM32Cube庫(kù)里的例程,集成進(jìn)了STM32CubeMX,用戶可以在“Example Selector”標(biāo)簽頁(yè),通過(guò)左邊一欄的過(guò)濾項(xiàng),選擇一個(gè)可以運(yùn)行在指定開(kāi)發(fā)板的例程,STM32CubeMX就可以幫我們創(chuàng)建該例程對(duì)應(yīng)的IDE工程。對(duì)于部分例程還會(huì)創(chuàng)建對(duì)應(yīng)的CubeMX工程(.ioc),用戶可以基于STM32CubeMX工程進(jìn)一步修改或者增加其他外設(shè)的配置。

下圖是“Example Selector”標(biāo)簽頁(yè)的界面,左邊的過(guò)濾項(xiàng)欄,包括兩大部分:第一部分是開(kāi)發(fā)板相關(guān)的過(guò)濾項(xiàng),有開(kāi)發(fā)板類(lèi)型和MCU系列的選擇;第二部分是工程相關(guān)的過(guò)濾項(xiàng),有IED的選擇,工程類(lèi)型選擇(外設(shè)例程,應(yīng)用例程和開(kāi)發(fā)板的Demo。這三個(gè)類(lèi)型分別對(duì)應(yīng)STM32Cube庫(kù)中Project下的Example,Applications和Demonstrations目錄下的例程),以及中間件和外設(shè)驅(qū)動(dòng)庫(kù)的選擇等。

右下方是滿足當(dāng)前設(shè)定條件的所有例程的列表,當(dāng)選中某個(gè)例程后,在右上方就會(huì)顯示對(duì)該例程的描述,需要的STM32Cube庫(kù)版本,以及對(duì)應(yīng)開(kāi)發(fā)板的文檔鏈接。點(diǎn)擊例程列表第一列的五角星圖標(biāo),還可以將該例程加入收藏,方便下次調(diào)出。

0f0f2fdc-7525-11ee-9788-92fbcf53809c.png

下面,我們將舉例說(shuō)明如何創(chuàng)建一個(gè)運(yùn)行在Nucleo-H743ZI開(kāi)發(fā)板上的GPIO_EXTI例程。

進(jìn)入“Example-Selector”后,首先通過(guò)設(shè)定過(guò)濾項(xiàng)來(lái)縮小選擇范圍。我們通過(guò)關(guān)鍵字指定要搜索的是GPIO例程,并指定開(kāi)發(fā)板類(lèi)型為Nucleo-144,板載MCU為STM32H743ZI。然后在右側(cè)的列表中就可以看到只有兩個(gè)滿足條件的例程,其中有一個(gè)GPIO_EXTI例程。

選中該例程,再點(diǎn)擊上方的“Start Project”。

0f23afde-7525-11ee-9788-92fbcf53809c.png

在STM32CubeMX創(chuàng)建工程的過(guò)程中,會(huì)跳出一個(gè)對(duì)話框,在該對(duì)話框里可以設(shè)置創(chuàng)建工程時(shí)需要使用的Cube庫(kù)的源文件位置(一般使用Cube庫(kù)默認(rèn)安裝的位置)和目標(biāo)工程的路徑,這里我們都使用它的默認(rèn)設(shè)置,然后點(diǎn)擊“OK”。

工程創(chuàng)建成功后,會(huì)跳出工程創(chuàng)建成功的對(duì)話框,并且在該對(duì)話框的下拉列表中顯示:已經(jīng)創(chuàng)建好IAR,KEIL和SW4STM32三個(gè)IDE工程(下拉菜單中的“explorer”指僅打開(kāi)所創(chuàng)建的工程目錄)??梢匀芜x一個(gè)打開(kāi),我們選擇IAR(EWARM)工程,點(diǎn)擊OK,就會(huì)自動(dòng)打開(kāi)對(duì)應(yīng)的IAR工程了。

0f2d0700-7525-11ee-9788-92fbcf53809c.png

對(duì)于一些較新的產(chǎn)品系列,CubeMX在創(chuàng)建所選擇的例程時(shí),還會(huì)創(chuàng)建STM32CubeIDE的工程,以及STM32CubeMX工程??梢灾苯哟蜷_(kāi)創(chuàng)建好的STM32CubeMX工程,在其之上修改或添加其他功能。

是否支持同時(shí)創(chuàng)建STM32CubeMX工程,可以通過(guò)例程說(shuō)明中的STM32CubeMX版本一項(xiàng)看出,如果標(biāo)有具體的STM32CubeMX版本,則說(shuō)明最后會(huì)生成STM32CubeMX工程,否則就不會(huì)生成STM32CubeMX工程。

0f449b5e-7525-11ee-9788-92fbcf53809c.png5,CAD資源視圖

SM32CubeMX CADT資源視圖可幫助用戶快速訪問(wèn)和下載1個(gè)或多個(gè)設(shè)計(jì)工具的Symbol原理圖符號(hào),PCB封裝和3D模型。這個(gè)功能需要STM32CubeMX保持網(wǎng)絡(luò)連接。

可以通過(guò)Help>Updater settings打開(kāi)STM32CubeMX 更新設(shè)置窗口進(jìn)行網(wǎng)絡(luò)配置和檢查連接。

CAD資源可以通過(guò)MCU選擇器窗口或者STM32CubeMX Project頁(yè)面進(jìn)入。


  • 通過(guò)MCU選擇器窗口訪問(wèn)

1.從STM32CubeMX homepage打開(kāi)MCU選擇器

2.選擇一個(gè)MCU型號(hào)(市場(chǎng)狀態(tài)不能為“Coming soon”)

3.選擇CAD Resources選項(xiàng)卡查看CAD資源

4.使用滾動(dòng)條拉低頁(yè)面,查看不同的資源視圖(Symbol原理圖符號(hào),PCB封裝和3D模型)

5.選擇設(shè)計(jì)工具類(lèi)型

6.選擇CAD格式

7.同意條款

8.點(diǎn)擊下載

9.選擇下載路徑


0f628ab0-7525-11ee-9788-92fbcf53809c.jpg
0f6ec73a-7525-11ee-9788-92fbcf53809c.png

  • 通過(guò)STM32CubeMX Project視圖訪問(wèn)

1.打開(kāi)一個(gè)STM32CubeMX工程2.從Tools面板打開(kāi)CAD選項(xiàng)卡進(jìn)行訪問(wèn)

Symbol視圖反映了STM32CubeMX工程的引腳配置、可選功能及標(biāo)注命名。下載后的CAD資源將和這些信息一致。

0f7be5be-7525-11ee-9788-92fbcf53809c.png

在STM32CubeMX的Pinout 中如果更改了管腳的名稱,在對(duì)應(yīng)的Symbol中也會(huì)對(duì)應(yīng)修改,需要在最后下載之前點(diǎn)擊refresh symbol previews更新一下, 再下載的內(nèi)容就是修改之后的了。

0f8944a2-7525-11ee-9788-92fbcf53809c.png

6,引腳配置

通過(guò)前面所說(shuō)的幾種方式,創(chuàng)建一個(gè)新的STM32CubeMX工程后,就會(huì)打開(kāi)下圖中的這個(gè)配置窗口。配置窗口有四個(gè)標(biāo)簽頁(yè)分別是:“pinout&Configuration”,“Clock Configuration”,“Project Manager”,“Tools“。

0f9d9920-7525-11ee-9788-92fbcf53809c.png

在” pinout&Configuration“標(biāo)簽下,可以使能需要的外設(shè),并進(jìn)行配置;“Clock Configuration”頁(yè)提供了圖形化的時(shí)鐘配置工具;在” Project Manager“頁(yè)可以對(duì)要生成的工程進(jìn)行配置;”Tools “標(biāo)簽頁(yè)提供了功耗評(píng)估工具,可以根據(jù)添加的運(yùn)行模式及持續(xù)時(shí)間,計(jì)算出系統(tǒng)的平均功耗以及電池的壽命。此為理論計(jì)算值,可作為產(chǎn)品設(shè)計(jì)的參考。下面我們就來(lái)逐個(gè)了解其功能。

我們先來(lái)看一下“Pinout&Configuration”標(biāo)簽頁(yè),在該標(biāo)簽頁(yè)的左邊一欄,所有的外設(shè)被分成:系統(tǒng)內(nèi)核,模擬定時(shí)器,通信,多媒體,安全和計(jì)算幾個(gè)組進(jìn)行顯示。比如,點(diǎn)開(kāi)通信(connectivity)這個(gè)組,就可以串口,I2C這些外設(shè)。

freeRTOS, FATFS等協(xié)議棧在Middleware分組下。右邊默認(rèn)顯示的一個(gè)MCU的引腳分配圖,在左邊欄使能了某個(gè)外設(shè)后,STM32CubeMx便會(huì)自動(dòng)為這些外設(shè)分配管腳,并該圖對(duì)應(yīng)的引腳標(biāo)記為綠色。也可以直接在這個(gè)引腳分配圖中點(diǎn)擊要配置的管腳,在下拉列表中手動(dòng)為管腳選擇功能。

7,時(shí)鐘樹(shù)初始化

在“Clock Configuration”標(biāo)簽頁(yè)面,我們看到的是整個(gè)MCU的時(shí)鐘樹(shù)結(jié)構(gòu),包括系統(tǒng)的時(shí)鐘源有哪些,時(shí)鐘路徑,分頻和倍頻過(guò)程等。

0fb99f9e-7525-11ee-9788-92fbcf53809c.png

在這里,我們可以配置系統(tǒng)工作時(shí)鐘和各個(gè)外設(shè)的時(shí)鐘。如果使用PLLCLK作為系統(tǒng)時(shí)鐘源,設(shè)置好HCLK總線時(shí)鐘頻率后,STM32CubeMX會(huì)自動(dòng)計(jì)算分頻因子。時(shí)鐘配置異常時(shí),還會(huì)有錯(cuò)誤提示。


8,外設(shè)配置

在“Pinout&Configuration”標(biāo)簽頁(yè)選中某個(gè)外設(shè)后,右側(cè)就會(huì)出現(xiàn)對(duì)應(yīng)的配置界面,可以對(duì)外設(shè)的運(yùn)行參數(shù),DMA和中斷進(jìn)行配置。比如圖中的USART3,首先選擇工作模式為異步(Asynchronous)模式,然后在下方的參數(shù)配置欄中,對(duì)波特率,數(shù)據(jù)長(zhǎng)度,奇偶校驗(yàn),停止位以及其他一些高級(jí)參數(shù)進(jìn)行設(shè)置。

0fc763a4-7525-11ee-9788-92fbcf53809c.png

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

左側(cè)外設(shè)列表中,通過(guò)不同的顏色和圖標(biāo)提示當(dāng)前外設(shè)的配置情況:綠色的對(duì)勾表示當(dāng)前外設(shè)的所有參數(shù)已經(jīng)配置完成,紫色的交叉圖標(biāo),表示配置尚未完成。橘黃色的感嘆號(hào)圖標(biāo),表示由于引腳沖突等原因,當(dāng)前外設(shè)至少有一個(gè)模式不可用。而紫色的禁止圖標(biāo),表示當(dāng)前外設(shè)的所有模式都不可用。

9,中間件配置

在“Pinout&Configuration”標(biāo)簽頁(yè)的“Middleware”中,用戶可以選擇需要使用的中間件并進(jìn)行配置,比如FreeRTOS,以太網(wǎng)協(xié)議棧Lwip,USB協(xié)議棧,文件系統(tǒng)等。

有可能你會(huì)看到某些中間件處于不可選狀態(tài),這是因?yàn)檫@些中間件的使用和一些硬件外設(shè)相關(guān),需要先使能這些外設(shè)。將鼠標(biāo)移到想使能的中間件名稱上面,稍等幾秒,就會(huì)出現(xiàn)一個(gè)灰色的文字框,其中就包含了需要使能哪些外設(shè)的提示。

0fd7c136-7525-11ee-9788-92fbcf53809c.png10,LPBAM配置

在新的STM32CubeMX中,STM32U575/585產(chǎn)品線的工程下用戶可以選擇性的使用LPBAM Scenario&Configuration 界面創(chuàng)建LPBAM應(yīng)用。通過(guò)這個(gè)界面用戶可以:

  • 添加或移除LPBAM應(yīng)用
  • 針對(duì)任意一個(gè)LPBAM應(yīng)用,創(chuàng)建序列
  • 針對(duì)任意一個(gè)序列,使用在Smart Run Domain下外設(shè)LPBAM 固件API創(chuàng)建功能節(jié)點(diǎn)
  • 針對(duì)任意一個(gè)LPBAM應(yīng)用,對(duì)Smart Run Domain下外設(shè)進(jìn)行引腳、時(shí)鐘樹(shù)、HAL相關(guān)的配置

0fe24dc2-7525-11ee-9788-92fbcf53809c.jpg

11,F(xiàn)reeRTOS配置

通過(guò)STM32CubeMX FreeRTOS配置窗口,用戶可以配置一個(gè)實(shí)時(shí)操作系統(tǒng)應(yīng)用所需要的所有資源并預(yù)留對(duì)應(yīng)的堆棧資源。使用CMSIS-RTOS API函數(shù)定義和生成FreeRTOS相關(guān)部件。配置流程如下:

a.在Pinout&Configuration選項(xiàng)卡下,點(diǎn)擊FreeRTOS打開(kāi)Mode 和Configuration頁(yè)面

b.在Mode面板內(nèi)使能 FreeRTOS

c.在Configuration面板內(nèi)配置FreeRTOS的原生參數(shù)等,比如任務(wù),定時(shí)器,隊(duì)列和信號(hào)量。在Config選項(xiàng)卡下配置內(nèi)核和軟件參數(shù)。在Include parameters選項(xiàng)卡下,選擇應(yīng)用需要的API函數(shù),通過(guò)該方法可以優(yōu)化代碼大小。Config選項(xiàng)卡和Include parameters選項(xiàng)卡下的參數(shù)都是FreeRTOSConfig.h文件的一部分。

d.點(diǎn)擊其他選項(xiàng)卡分別對(duì)FreeRTOS的任務(wù),隊(duì)列,定時(shí)器,信號(hào)量,堆棧等進(jìn)行配置。


0fee9fbe-7525-11ee-9788-92fbcf53809c.jpg ?12,Thread-Safe配置

無(wú)論是前后臺(tái)或者是基于RTOS的系統(tǒng)都可能在調(diào)用C庫(kù)函數(shù)時(shí)存在線程安全Thread-Safe問(wèn)題,例如下圖對(duì)malloc()函數(shù)的調(diào)用。該類(lèi)問(wèn)題出現(xiàn)時(shí),公用資源例如RAM數(shù)據(jù)出現(xiàn)沖突而應(yīng)用程序仍能在一段正常運(yùn)行后才出現(xiàn)問(wèn)題。對(duì)工程師而言,難以調(diào)試,也難以查找到根本原因。STM32CubeMX針對(duì)EWARM, MDK-ARM和STM32CubeIDE工具鏈提供了對(duì)應(yīng)的Thread-Safe解決策略,可以直接配置完成。

0ffd3aba-7525-11ee-9788-92fbcf53809c.png

在Project Manager Settings tab選項(xiàng)卡下,Thread-safe Settings區(qū)域可以進(jìn)行配置,如下圖所示。適用于所有STM32 MCU,支持的IDE是EWARM,MDK-ARM和STM32CubeIDE,選中其他IDE時(shí),則該區(qū)域灰色顯示,不可配置。

100b3af2-7525-11ee-9788-92fbcf53809c.png13,代碼生成

所有的參數(shù)配置完成后,就可以讓STM32CubeMX來(lái)生成初始化的工程了。

10291554-7525-11ee-9788-92fbcf53809c.png

在”P(pán)roject Manager”標(biāo)簽頁(yè)下,有三大類(lèi)配置,分別在三個(gè)子標(biāo)簽頁(yè)下。在“Project”頁(yè)下,可以設(shè)定項(xiàng)目名稱,項(xiàng)目位置,選擇工具鏈和固件版本等;在“Code Generator”頁(yè)下,可以設(shè)置生成代碼的相關(guān)選項(xiàng),比如是否拷貝相關(guān)的庫(kù)文件,重新生成代碼時(shí),如何處理之前生成的文件等;

在“Advanced Settings”頁(yè)面下,可以對(duì)要生成的初始化代碼做進(jìn)一步的設(shè)置,比如使用HAL還是LL驅(qū)動(dòng),生成的初始化代碼是否是靜態(tài)函數(shù),是否在主函數(shù)里調(diào)用等。

所有的參數(shù)都設(shè)置好后,點(diǎn)擊“GENERATE CODE”,STM32CubeMX就開(kāi)始創(chuàng)建工程了。

下面我們來(lái)看一下在“Project Manager”標(biāo)簽頁(yè)下需要注意的一些配置項(xiàng)。

1. 選擇不同的項(xiàng)目結(jié)構(gòu)

“Project”頁(yè)的“Application structure”項(xiàng)可以設(shè)置兩種不同的項(xiàng)目工程文件結(jié)構(gòu)。

“Basic”結(jié)構(gòu):適合沒(méi)有使用中間件或者只使用了一種中間件的項(xiàng)目。用戶代碼分為Src和Inc兩個(gè)文件夾,和IDE文件夾位于同一層,這種結(jié)構(gòu)跟Cube庫(kù)中的例程的文件結(jié)構(gòu)類(lèi)似。

“Advanced”結(jié)構(gòu)的構(gòu)成如下圖中所示,用戶應(yīng)用邏輯代碼放在Core文件夾下,每個(gè)中間件的適配文件各自放在獨(dú)立的文件夾內(nèi)(比如圖中的USB_HOST),并分為和硬件平臺(tái)相關(guān)的Target部分以及和應(yīng)用相關(guān)的App部分,這種結(jié)構(gòu)適合使用了多個(gè)中間件的項(xiàng)目,使得項(xiàng)目的集成更加容易。

1039c746-7525-11ee-9788-92fbcf53809c.png2. 選擇不同的Cube庫(kù)版本

STM32CubeMX生成工程的時(shí)候,默認(rèn)會(huì)使用當(dāng)前最新的Cube庫(kù)。如果想使用不同的Cube庫(kù)版本,可以取消勾選“Use Default Firmware Location”,然后,點(diǎn)擊Browse,在本地電腦中選擇另一個(gè)版本的Cube庫(kù)。

104eba98-7525-11ee-9788-92fbcf53809c.png
3. 設(shè)置代碼相關(guān)選項(xiàng)

下圖是“Code Generator”標(biāo)簽頁(yè)的默認(rèn)設(shè)置。

1066bc74-7525-11ee-9788-92fbcf53809c.png

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

在STM32CubeMX生成的工程中,添加用戶自己的代碼,必須將代碼放在由/*USER CODE BEGIN */和/* USER CODE END */標(biāo)識(shí)的用戶代碼區(qū),這樣當(dāng)再次通過(guò)STM32CubeMX生成代碼的時(shí)候,用戶添加的代碼才不會(huì)被清除,并且一定要保證“Keep User Code when re-generating”項(xiàng)處于勾選狀態(tài)。

通過(guò)“Generate peripheral initialization as a pair of .c/.h files per peripheral”可以選擇是否將所有外設(shè)初始化的代碼放在一個(gè)文件,還是分開(kāi)放在獨(dú)立的.c/.h文件。

當(dāng)修改配置后重新生成工程時(shí),默認(rèn)會(huì)刪除不再需要的文件,也可以通過(guò)取消勾選“Delete previously generated files when not re-generated”,在下次重新生成工程時(shí),保留這些文件。

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

4. 高級(jí)設(shè)置

STM32Cube庫(kù)里提供有HAL和LL兩類(lèi)底層驅(qū)動(dòng)接口,HAL驅(qū)動(dòng)的移植性更好,但代碼量大,而LL驅(qū)動(dòng)提供高度優(yōu)化,寄存器層面的訪問(wèn),代碼量小,效率高。使用LL驅(qū)動(dòng)接口需要密切結(jié)合用戶參考手冊(cè),與底層硬件結(jié)合度高,移植工作量也會(huì)增加。這兩類(lèi)驅(qū)動(dòng)接口,可以在“Advanced Settings”標(biāo)簽頁(yè)下進(jìn)行選擇。

在該標(biāo)簽頁(yè)下,還列出了STM32CubeMX將會(huì)生成的初始化函數(shù),可以在這里設(shè)置是否將該函數(shù)定義為靜態(tài)函數(shù),是否在main函數(shù)中調(diào)用該初始化函數(shù)。

在最右邊一列中,還可以設(shè)置是否使用某個(gè)外設(shè)的callback函數(shù),如果設(shè)置為enable,則stm32xxxx_hal_conf.h 文件中對(duì)應(yīng)的宏定義為1。

107487d2-7525-11ee-9788-92fbcf53809c.png14,功耗計(jì)算

STM32CubeMX還有一個(gè)有用的功能:功耗評(píng)估。在”Tools-PCC“標(biāo)簽頁(yè)下,功耗評(píng)估工具頁(yè)面中:選擇電池的容量,添加運(yùn)行模式及持續(xù)時(shí)間,CubeMX將會(huì)計(jì)算出系統(tǒng)的平均功耗以及電池的壽命。此為理論計(jì)算值,可作為產(chǎn)品設(shè)計(jì)的參考。

10801070-7525-11ee-9788-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11167

    瀏覽量

    373651
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1980

    瀏覽量

    135049
  • CAD
    CAD
    +關(guān)注

    關(guān)注

    18

    文章

    1142

    瀏覽量

    76674
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    以“網(wǎng)關(guān)中間件”實(shí)現(xiàn)充電樁OCPP 1.6安全配置文件無(wú)縫升級(jí)

    深圳惠志科技有限公司推出的OCPP安全代理網(wǎng)關(guān)采用"網(wǎng)關(guān)中間件"架構(gòu),在充電樁與云端CSMS之間透明地部署,實(shí)現(xiàn)充電樁OCPP 1.6協(xié)議安全配置文件從Profile 0/1到Profile 2/3的無(wú)縫升級(jí),而無(wú)需觸及樁端硬件與固件。
    的頭像 發(fā)表于 02-04 11:56 ?870次閱讀
    以“網(wǎng)關(guān)<b class='flag-5'>中間件</b>”實(shí)現(xiàn)充電樁OCPP 1.6安全配置文件無(wú)縫升級(jí)

    基于 X-Cube-FreeRTOS_Heap4 和 CubeMX 生成 UCPD 項(xiàng)目介紹

    某客戶反映參考我們的文檔 AN5418《How to build a simple USB-PD sink applicationwith STM32CubeMX》去配置 FreeRTOS 生成
    發(fā)表于 01-04 11:18 ?0次下載

    請(qǐng)問(wèn)RT-Thread與stm32cubemx聯(lián)合開(kāi)發(fā)的原理是什么?

    在使用RT-Thread與stm32cubemx聯(lián)合開(kāi)發(fā)的原理是什么,cubemx在其中主要起到了哪些功能呢?
    發(fā)表于 10-11 15:49

    意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE中

    從2025年11月發(fā)布的版本開(kāi)始,我們將僅以 獨(dú)立 版本的形式提供 STM32CubeIDE 和 STM32CubeMXSTM32CubeMX將不再集成到STM32CubeIDE
    的頭像 發(fā)表于 09-01 17:18 ?3473次閱讀

    STM32U575VGT6在cubeMX中沒(méi)有FATFS中間件,是不支持嗎?

    STM32U575VGT6在cubeMX中沒(méi)有FATFS中間件,是不支持?還是待開(kāi)發(fā)?現(xiàn)在這塊板子使用FATFS只能自己手動(dòng)移植嗎?
    發(fā)表于 07-30 06:46

    使用STM32CubeMX的時(shí)候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?

    在使用STM32CubeMX的時(shí)候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?在基于開(kāi)發(fā)板進(jìn)行工程創(chuàng)建的時(shí)候會(huì)把板載資源直接初始化,后面想要用不同的功能配置,如何把初始配置去掉?
    發(fā)表于 07-22 07:13

    對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?

    對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?
    發(fā)表于 07-21 07:07

    中科創(chuàng)達(dá)與ETAS推出預(yù)集成多域中間件解決方案

    近日,ETAS 與 ThunderSoft(中科創(chuàng)達(dá))宣布雙方建立了緊密合作關(guān)系,并將在今年6月24日至25日于路德維希堡舉行的汽車(chē)電子大會(huì)上,聯(lián)合展示其新開(kāi)發(fā)的、面向高性能計(jì)算(HPC)SoC 車(chē)載系統(tǒng)的多域預(yù)集成中間件解決方案。
    的頭像 發(fā)表于 06-25 10:16 ?1293次閱讀

    STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷?

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-18 07:59

    STM32CubeMX配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷怎么辦?

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-16 06:32

    使用STM32CubeMX進(jìn)行配置USB的時(shí)候,有哪些小的需要注意的細(xì)節(jié)?

    在使用STM32CubeMX進(jìn)行配置USB的時(shí)候,是參照例程進(jìn)行的配置,自己配置的就是沒(méi)有成功,例程就滅有問(wèn)題,總感覺(jué)哪里沒(méi)有打開(kāi)?有人遇到過(guò)需要注意的小細(xì)節(jié)嗎?
    發(fā)表于 04-23 06:54

    STM32開(kāi)發(fā)入門(mén)進(jìn)階必備!《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》新書(shū)發(fā)布!

    上市。高校教學(xué)推薦,STM32入門(mén)必讀!圖書(shū)介紹STM32嵌入式系統(tǒng)開(kāi)發(fā)——基于STM32CubeMX和HAL庫(kù)》是一本介紹嵌入式系統(tǒng)中
    的頭像 發(fā)表于 04-03 14:54 ?1964次閱讀
    <b class='flag-5'>STM32</b>開(kāi)發(fā)入門(mén)進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開(kāi)發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫(kù)》新書(shū)發(fā)布!

    STM32cubeMx打開(kāi)報(bào)錯(cuò)更新器正在下載,怎么解決?

    cubeMx打開(kāi)報(bào)錯(cuò)A \'STiM32Cube Updater (or another\'STM32CubeMX) sotware is downloading to the Repository
    發(fā)表于 03-14 07:03

    STM32MP131C CbueMX中間件無(wú)RTOS選項(xiàng)是怎么回事?

    如題,STM32MP131C CbueMX中間件無(wú)RTOS選項(xiàng),對(duì)比選擇STM32MP157芯片是有的,怎么查這部分資料呢
    發(fā)表于 03-14 06:59

    STM32CubeMX中點(diǎn)擊 “ Help ” 選項(xiàng)后選擇 “ Manage embedded software packages ”無(wú)響應(yīng)是怎么回事?

    STM32CubeMX中點(diǎn)擊 “ Help ” 選項(xiàng)后選擇 “ Manage embedded software packages ”無(wú)響應(yīng)?
    發(fā)表于 03-14 06:50