需要注意,CubeMX只是一個(gè)初始化工具,它只是幫你完成了HAL庫外設(shè)和時(shí)鐘的初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關(guān)函數(shù)實(shí)現(xiàn)你想實(shí)現(xiàn)的功能。
CubeMX生成的代碼包含了豐富的注釋,為用戶規(guī)范編程提供了參考,如果后期還需要使用CubeMX更改時(shí)鐘或是添加新的外設(shè),用戶代碼必須寫在相應(yīng)注釋BEGIN和END之間,否則再次使用CubeMX生成代碼時(shí),未在指定位置的代碼會(huì)被刪除!
![790d7c76-c840-11ef-9434-92fbcf53809c.png](http://images.elecfans.net/uploads/20250101/790d7c76-c840-11ef-9434-92fbcf53809c.png)
CubeMX可以幫助用戶初始化外設(shè),所做的操作在MX_XX_Init()中,但如果用戶在代碼中自行更改了MX_XX_Init()的內(nèi)容,再次打開 CubeMX,圖形化界面并不會(huì)同步用戶在代碼中對(duì)初始化部分所做的更改!
綜上所述,如果用戶希望在整個(gè)項(xiàng)目開發(fā)過程中一直使用CubeMX進(jìn)行初始化和對(duì)外設(shè)參數(shù)進(jìn)行修改,一是需要嚴(yán)格按照注釋的位置編寫代碼,二是不要在代碼層面改動(dòng)MX_XX_Init()的內(nèi)容,對(duì)外設(shè)初始化參數(shù)的修改要在CubeMX中進(jìn)行。
如果用戶只是希望使用CubeMX生成一個(gè)工程模板,后期新加外設(shè)或修改時(shí)鐘不再使用CubeMX工具,而是純使用代碼來實(shí)現(xiàn),則不需考慮代碼位置和CubeMX的初始化更改。
![79261204-c840-11ef-9434-92fbcf53809c.png](http://images.elecfans.net/uploads/20250101/79261204-c840-11ef-9434-92fbcf53809c.png)
此文件夾下存放在.s啟動(dòng)文件,用戶一般不需要進(jìn)行更改。
Drivers/CMSIS文件夾:
存放CMSIS接口文件,用戶一般無需關(guān)心。
Application/User/Core文件夾:
main.c里面有main函數(shù),用戶程序從此處開始執(zhí)行;
xx.c關(guān)于外設(shè)的初始化函數(shù)MX_XX_Init()、外設(shè)結(jié)構(gòu)體等就在此處被定義;
stm32xx_it.c 中斷服務(wù)函數(shù)在此處被定義(其實(shí)也支持在別處復(fù)定義),用戶可以修改中斷服務(wù)函數(shù)來實(shí)現(xiàn)用戶需要的功能;
stm32xx_hal_msp.c 與初始化相關(guān),如果用CubeMX進(jìn)行初始化,一般也無需關(guān)心此文件。
Drivers/STM32xx_HAL_Driver文件夾:
HAL庫文件夾,里面存放這各個(gè)外設(shè)相關(guān)函數(shù),我們調(diào)用的函數(shù),也大多來自此處。
更重要的是,這里面也包含HAL庫相關(guān)外設(shè)的使用說明書,以stm32f1xx_hal_gpio_ex.c為例,在庫函數(shù)的前面會(huì)有大篇幅的介紹,介紹如何使用這個(gè)外設(shè),實(shí)現(xiàn)什么功能需要調(diào)用什么函數(shù),非常貼心。
![793e11ec-c840-11ef-9434-92fbcf53809c.png](http://images.elecfans.net/uploads/20250101/793e11ec-c840-11ef-9434-92fbcf53809c.png)
-
STM32
+關(guān)注
關(guān)注
2272文章
10923瀏覽量
357544 -
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69038 -
HAL
+關(guān)注
關(guān)注
2文章
71瀏覽量
12673
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
STM32CubeMx入門教程(4):PWM應(yīng)用
![<b class='flag-5'>STM32CubeMx</b>入門教程(4):PWM應(yīng)用](https://file1.elecfans.com/web2/M00/8C/7A/wKgZomStA0SAeu_6AAGAZowRa38854.jpg)
STM32F030K6xx HAL庫及STM32CubeMX生成代碼
用STM32CubeMX與HAL庫進(jìn)行開發(fā)
STM32CubeMx代碼生成問題求解
使用STM32CubeMx版本6.5.0生成的代碼缺少HAL_RTCEx_SetWakeUpTimer_IT ()的原因?
STM32CubeMX 配置STM32F407 實(shí)現(xiàn)HAL庫延時(shí)微妙方案
![<b class='flag-5'>STM32CubeMX</b> 配置<b class='flag-5'>STM32</b>F407 實(shí)現(xiàn)<b class='flag-5'>HAL</b>庫延時(shí)微妙方案](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX生成代碼在SW4STM32下移植STemWin(CLion+CubeMX)
![<b class='flag-5'>STM32CubeMX</b><b class='flag-5'>生成</b><b class='flag-5'>代碼</b>在SW4<b class='flag-5'>STM32</b>下移植STemWin(CLion+<b class='flag-5'>CubeMX</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32cubemx教程及STM32入門(一)
![<b class='flag-5'>STM32cubemx</b>教程及<b class='flag-5'>STM32</b>入門(一)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32實(shí)戰(zhàn) 2 | STM32CubeMX及HAL庫點(diǎn)亮LED
![<b class='flag-5'>STM32</b>實(shí)戰(zhàn) 2 | <b class='flag-5'>STM32CubeMX</b>及<b class='flag-5'>HAL</b>庫點(diǎn)亮LED](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX基于HAL庫實(shí)現(xiàn)簡單串口通信
![<b class='flag-5'>STM32CubeMX</b>基于<b class='flag-5'>HAL</b>庫實(shí)現(xiàn)簡單串口通信](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX | STM32基于HAL實(shí)現(xiàn)USB模擬U盤
![<b class='flag-5'>STM32CubeMX</b> | <b class='flag-5'>STM32</b>基于<b class='flag-5'>HAL</b>實(shí)現(xiàn)USB模擬U盤](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX與HAL庫學(xué)習(xí)--ADC與USART的簡單練習(xí)
![<b class='flag-5'>STM32CubeMX</b>與<b class='flag-5'>HAL</b>庫學(xué)習(xí)--ADC與USART的簡單練習(xí)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX用于STM32配置并初始化C代碼生成
使用STM32CubeMX生成初始化代碼
STM32CubeMX的配置和C代碼的生成
![<b class='flag-5'>STM32CubeMX</b>的配置和C<b class='flag-5'>代碼</b>的<b class='flag-5'>生成</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論