關(guān)鍵字:.extSettings,文件結(jié)構(gòu),BSP
目錄預(yù)覽
1.前言
2..extSetting文件的作用
3.使用實例
4.小結(jié)
01 前言
在閱讀UM1718文檔的時候,發(fā)現(xiàn)CubeMX有個比較好的功能,可以用“.extSettings"文件一次,后續(xù)不管使用哪個IDE(只要是CubeMX支持的),都不需要再手動配置文件結(jié)構(gòu)或包含頭文件路徑了,并且可以保持對各個IDE(只包括CubeMX支持的)配置的一致性,減少工作量。也有客戶詢問怎么添加工程文件的問題,考慮到可能有些同學(xué)不太了解這個功能,所以本文對這個功能進行介紹。
02
.extSettings文件的作用
".extSettings"文件是對CubeMX配置的補充,是在CubeMX配置的基礎(chǔ)上進行的額外配置,不是替換CubeMX的配置,這點需要注意。
總體來說,".extSettings"文件中的配置包含三部分,分別是[ProjectFiles],[Groups]和[Others],下面分別對這三個部分的功能進行介紹。
2.1. [ProjectFiles]
[ProjectFiles]這個部分主要是用來包含一些目錄,例如頭文件存放的目錄。
語法:HeaderPath=
示例:HeaderPath=../BSP/STM32H735G-DK
說明:這里的路徑是相對于“*.cproject”或 “*.project”文件(如果生成的是CubeIDE的工程代碼的話)的相對路徑。如果生成的是其他IDE的工程代碼,則這個路徑是相對于其他工程文件的相對路徑,例如“*.eww”文件(IAR)或“*.uvprojx”文件(KEIL)
效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,效果如圖1,紅框部分是通過".extSettings"文件包含的目錄,可以看到已經(jīng)被包含到工程中。
圖1 配置[ProjectFiles]后CubeIDE工程包含的目錄
2.2. [Groups]
這個部分主要是用來在工程中創(chuàng)建文件組并且將文件添加到文件組中,用來組織工程的文件結(jié)構(gòu)。
語法:
示例:Drivers/BSP/STM32H735G-DK=.. /BSP/STM32H735G-DK /stm32h735g_discovery.c;
說明:
效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,效果如圖2。
圖2 配置[Groups]后CubeIDE工程的文件結(jié)構(gòu)
2.3. [Others]
[Others]這個部分主要是用來使能一些HAL模板和添加一些預(yù)處理定義語句。
2.3.1. 添加HAL模板
語法:HALModule=
示例:HALModule=SPI;ADC;
效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,如果使用H7系列的芯片創(chuàng)建的工程,則會自動在“stm32h7xx_hal_conf.h”文件(如果是其他系列的芯片的話,名字會略有區(qū)別)中添加”HAL_SPI_MODULE_ENABLED"和“HAL_ADC_MODULE_ENABLED"這兩個宏定義,作用是在這個文件中包含SPI與ADC的頭文件。如圖3所示:
圖3 配置[Other]的HALModule后HAL的配置文件中自動添加的內(nèi)容
2.3.2. 添加預(yù)處理定義語句
語法:Define=
示例:Define=TEST_STM32H735G_DEMO
效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,可以看到".extSettings"文件中配置的預(yù)定義語句已經(jīng)被添加到工程中了。
圖4 配置[Other]的Define后自動在工程中添加的預(yù)處理語句
03 使用實例
下面的實例基于STM32H735G-DK板,使用“STM32Cube_FW_H7_V1.10.0”中的BSP驅(qū)動。要達到的目的是使板子上的LED1每隔0.5S切換一次亮/滅狀態(tài)。下面是實現(xiàn)的步驟:
3.1.1. 創(chuàng)建CubeMX配置文件
使用STM32CubeMX創(chuàng)建STM32H735IGK6(STM32H735G-DK)的工程,其他配置都使用默認值即可,并保存這個配置文件。如圖5所示:
圖5 保存CubeMX產(chǎn)生的配置文件
3.1.2. 添加BSP文件
將“STM32Cube_FW_H7_V1.10.0/Drivers”路徑下的“BSP”目錄及其文件都復(fù)制到工程目錄下(這里是復(fù)制到.ioc文件相同目錄下,您也可以根據(jù)自己需要復(fù)制到其他地方,只要在".extSettings"文件中包含即可)。如圖6所示:
圖6 復(fù)制“BSP”到工程目錄下
修改BSP中 “stm32h735g_discovery_conf_template.h"文件的文件名,修改為“stm32h735g_discovery_conf.h”
圖7 添加BSP的配置文件
3.1.3. 創(chuàng)建.extSettings文件
在.ioc文件同級目錄下創(chuàng)建".extSettings"文件。如下圖所示:
圖8 添加.extSettings文件
注意:.extSettings文件一定要放在.ioc文件的同一目錄下
3.1.4. 修改.extSettings文件的內(nèi)容
(1)因為要對GPIO進行操作,BSP文件是基于HAL庫的,所以需要使用GPIO的HAL庫(避免GPIO模塊尚未使能,這里使能GPIO模塊)。在[Others]部分需要添加的內(nèi)容為:HALModule=GPIO
(2)添加BSP中需要包含的目錄。所以在[ProjectFiles]中需要添加的內(nèi)容為:HeaderPath=../BSP/STM32H735G-DK
(3)將BSP中的文件添加到工程中,因為只需要操作LED,所以需要添加“stm32h735g_discovery.c”文件即可,并創(chuàng)建文件組“STM32H735G-DK”。所以在[Groups]中需要添加的內(nèi)容為:Drivers/BSP/STM32H735G-DK=../BSP/STM32H735G-DK /stm32h735g_discovery.c;
綜合上面三點,在.extSettings文件中需要添加的內(nèi)容為:
3.1.5. 使用CubeMX生成適用不同IDE的工程代碼
使用CubeMX生成代碼(GENERAGE CODE),分別生成CubeIDE,IAR和KEIL的工程代碼。
圖9 使用CubeMX生成代碼
生成代碼后,可以看到不同IDE的工程文件結(jié)構(gòu)如下圖:
圖10 STM32CubeIDE
圖11 IAR
圖12 KEIL
可以從上面圖中看到,“stm32h735g_discovery.c”文件已經(jīng)被添加到工程中,BSP的目錄也已經(jīng)被包含到工程中。
3.1.6. 添加代碼實現(xiàn)功能
1.包含“stm32h735g_discovery.h”頭文件。
圖13 包含“stm32h735g_discovery.h”
2.使用BSP初始化LED1的配置。
圖14 使用BSP初始化LED1的配置
3.添加LED1的翻轉(zhuǎn)操作。
圖15 添加LED的翻轉(zhuǎn)操作
結(jié)果:使用這三種IDE進行編譯下載后都可以實現(xiàn)LED1每隔0.5S切換亮/滅狀態(tài)的操作。
04 小結(jié)
使用".extSettings"文件配置工程的文件機構(gòu),可以做到一次配置,多種平臺可用的效果,并可以保持配置的一致性。
注意:".extSettings"文件一定要放在.ioc文件相同的目錄下
完整內(nèi)容請點擊“閱讀原文”下載原文檔。
訂閱號
關(guān)注STM32
視頻號B站賬號
▽點擊“閱讀原文”,可下載原文檔
原文標題:應(yīng)用筆記 | 使用STM32CubeMX生成配置代碼的文件結(jié)構(gòu)
文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634653 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355743
原文標題:應(yīng)用筆記 | 使用STM32CubeMX生成配置代碼的文件結(jié)構(gòu)
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論