需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL庫外設(shè)和時鐘的初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關(guān)函數(shù)實現(xiàn)你想實現(xiàn)的功能。
CubeMX生成的代碼包含了豐富的注釋,為用戶規(guī)范編程提供了參考,如果后期還需要使用CubeMX更改時鐘或是添加新的外設(shè),用戶代碼必須寫在相應(yīng)注釋BEGIN和END之間,否則再次使用CubeMX生成代碼時,未在指定位置的代碼會被刪除!
CubeMX可以幫助用戶初始化外設(shè),所做的操作在MX_XX_Init()中,但如果用戶在代碼中自行更改了MX_XX_Init()的內(nèi)容,再次打開 CubeMX,圖形化界面并不會同步用戶在代碼中對初始化部分所做的更改!
綜上所述,如果用戶希望在整個項目開發(fā)過程中一直使用CubeMX進(jìn)行初始化和對外設(shè)參數(shù)進(jìn)行修改,一是需要嚴(yán)格按照注釋的位置編寫代碼,二是不要在代碼層面改動MX_XX_Init()的內(nèi)容,對外設(shè)初始化參數(shù)的修改要在CubeMX中進(jìn)行。
如果用戶只是希望使用CubeMX生成一個工程模板,后期新加外設(shè)或修改時鐘不再使用CubeMX工具,而是純使用代碼來實現(xiàn),則不需考慮代碼位置和CubeMX的初始化更改。
此文件夾下存放在.s啟動文件,用戶一般不需要進(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ù)在此處被定義(其實也支持在別處復(fù)定義),用戶可以修改中斷服務(wù)函數(shù)來實現(xiàn)用戶需要的功能;
stm32xx_hal_msp.c 與初始化相關(guān),如果用CubeMX進(jìn)行初始化,一般也無需關(guān)心此文件。
Drivers/STM32xx_HAL_Driver文件夾:
HAL庫文件夾,里面存放這各個外設(shè)相關(guān)函數(shù),我們調(diào)用的函數(shù),也大多來自此處。
更重要的是,這里面也包含HAL庫相關(guān)外設(shè)的使用說明書,以stm32f1xx_hal_gpio_ex.c為例,在庫函數(shù)的前面會有大篇幅的介紹,介紹如何使用這個外設(shè),實現(xiàn)什么功能需要調(diào)用什么函數(shù),非常貼心。
-
STM32
+關(guān)注
關(guān)注
2272文章
10923瀏覽量
357413 -
代碼
+關(guān)注
關(guān)注
30文章
4823瀏覽量
68988 -
HAL
+關(guān)注
關(guān)注
2文章
71瀏覽量
12665
發(fā)布評論請先 登錄
相關(guān)推薦
評論