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

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

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

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

應(yīng)用筆記 | 使用STM32CubeMX生成配置代碼的文件結(jié)構(gòu)

STM32單片機(jī) ? 來(lái)源:未知 ? 2023-09-19 09:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wKgZomUJxrCAdB5UAAHUHXdxAL4153.gif

關(guān)鍵字:.extSettings,文件結(jié)構(gòu),BSP

目錄預(yù)覽

1.前言

2..extSetting文件的作用

3.使用實(shí)例

4.小結(jié)

01 前言

在閱讀UM1718文檔的時(shí)候,發(fā)現(xiàn)CubeMX有個(gè)比較好的功能,可以用“.extSettings"文件一次,后續(xù)不管使用哪個(gè)IDE(只要是CubeMX支持的),都不需要再手動(dòng)配置文件結(jié)構(gòu)或包含頭文件路徑了,并且可以保持對(duì)各個(gè)IDE(只包括CubeMX支持的)配置的一致性,減少工作量。也有客戶詢問(wèn)怎么添加工程文件的問(wèn)題,考慮到可能有些同學(xué)不太了解這個(gè)功能,所以本文對(duì)這個(gè)功能進(jìn)行介紹。

02

.extSettings文件的作用

".extSettings"文件是對(duì)CubeMX配置的補(bǔ)充,是在CubeMX配置的基礎(chǔ)上進(jìn)行的額外配置,不是替換CubeMX的配置,這點(diǎn)需要注意。

總體來(lái)說(shuō),".extSettings"文件中的配置包含三部分,分別是[ProjectFiles],[Groups]和[Others],下面分別對(duì)這三個(gè)部分的功能進(jìn)行介紹。

2.1. [ProjectFiles]

[ProjectFiles]這個(gè)部分主要是用來(lái)包含一些目錄,例如頭文件存放的目錄。

語(yǔ)法:HeaderPath=;

示例:HeaderPath=../BSP/STM32H735G-DK

說(shuō)明:這里的路徑是相對(duì)于“*.cproject”或 “*.project”文件(如果生成的是CubeIDE的工程代碼的話)的相對(duì)路徑。如果生成的是其他IDE的工程代碼,則這個(gè)路徑是相對(duì)于其他工程文件的相對(duì)路徑,例如“*.eww”文件(IAR)或“*.uvprojx”文件(KEIL

效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,效果如圖1,紅框部分是通過(guò)".extSettings"文件包含的目錄,可以看到已經(jīng)被包含到工程中。

wKgZomUJxrCAVLQTAAFkH2I-rRk167.png

圖1 配置[ProjectFiles]后CubeIDE工程包含的目錄

2.2. [Groups]

這個(gè)部分主要是用來(lái)在工程中創(chuàng)建文件組并且將文件添加到文件組中,用來(lái)組織工程的文件結(jié)構(gòu)。

語(yǔ)法:=;

示例:Drivers/BSP/STM32H735G-DK=.. /BSP/STM32H735G-DK /stm32h735g_discovery.c;

說(shuō)明:是工程中的文件組名(若不存在則會(huì)自動(dòng)創(chuàng)建);是文件路徑。示例中語(yǔ)句的作用是,嵌套創(chuàng)建“Drivers/BSP/STM32H735G-DK”這個(gè)文件組(可以多級(jí)嵌套創(chuàng)建),并且將“stm32h735g_discovery.c”文件添加進(jìn)這個(gè)文件組中。可以在一個(gè)文件組中添加多個(gè)文件,只要多個(gè)之間通過(guò)分號(hào)(“;”)隔開(kāi)即可。

效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,效果如圖2。

wKgZomUJxrCAcQmUAADgIJUk-PE408.png

圖2 配置[Groups]后CubeIDE工程的文件結(jié)構(gòu)

2.3. [Others]

[Others]這個(gè)部分主要是用來(lái)使能一些HAL模板和添加一些預(yù)處理定義語(yǔ)句。

2.3.1. 添加HAL模板

語(yǔ)法:HALModule=;;

示例:HALModule=SPI;ADC;

效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,如果使用H7系列的芯片創(chuàng)建的工程,則會(huì)自動(dòng)在“stm32h7xx_hal_conf.h”文件(如果是其他系列的芯片的話,名字會(huì)略有區(qū)別)中添加”HAL_SPI_MODULE_ENABLED"和“HAL_ADC_MODULE_ENABLED"這兩個(gè)宏定義,作用是在這個(gè)文件中包含SPI與ADC的頭文件。如圖3所示:

wKgZomUJxrGAQrPsAANOMq_2QJw578.png

圖3 配置[Other]的HALModule后HAL的配置文件中自動(dòng)添加的內(nèi)容

2.3.2. 添加預(yù)處理定義語(yǔ)句

語(yǔ)法:Define=;

示例:Define=TEST_STM32H735G_DEMO

效果:在".extSettings"文件中添加示例中的內(nèi)容,重新生成代碼后,可以看到".extSettings"文件中配置的預(yù)定義語(yǔ)句已經(jīng)被添加到工程中了。

wKgZomUJxrGAbI3KAAHy8uiJd2E179.png

圖4 配置[Other]的Define后自動(dòng)在工程中添加的預(yù)處理語(yǔ)句

03 使用實(shí)例

下面的實(shí)例基于STM32H735G-DK板,使用“STM32Cube_FW_H7_V1.10.0”中的BSP驅(qū)動(dòng)。要達(dá)到的目的是使板子上的LED1每隔0.5S切換一次亮/滅狀態(tài)。下面是實(shí)現(xiàn)的步驟:

3.1.1. 創(chuàng)建CubeMX配置文件

使用STM32CubeMX創(chuàng)建STM32H735IGK6(STM32H735G-DK)的工程,其他配置都使用默認(rèn)值即可,并保存這個(gè)配置文件。如圖5所示:

wKgZomUJxrGABXLtAABSrFAZzFg338.png

圖5 保存CubeMX產(chǎn)生的配置文件

3.1.2. 添加BSP文件

將“STM32Cube_FW_H7_V1.10.0/Drivers”路徑下的“BSP”目錄及其文件都復(fù)制到工程目錄下(這里是復(fù)制到.ioc文件相同目錄下,您也可以根據(jù)自己需要復(fù)制到其他地方,只要在".extSettings"文件中包含即可)。如圖6所示:

wKgZomUJxrGAVN9uAABaR3a0KPE232.png

圖6 復(fù)制“BSP”到工程目錄下

修改BSP中 “stm32h735g_discovery_conf_template.h"文件的文件名,修改為“stm32h735g_discovery_conf.h”

wKgZomUJxrKABTXHAAREZK74X2Q549.png

圖7 添加BSP的配置文件

3.1.3. 創(chuàng)建.extSettings文件

在.ioc文件同級(jí)目錄下創(chuàng)建".extSettings"文件。如下圖所示:

wKgZomUJxrKAaZ6MAABqolDo260071.png

圖8 添加.extSettings文件

注意:.extSettings文件一定要放在.ioc文件的同一目錄下

3.1.4. 修改.extSettings文件的內(nèi)容

(1)因?yàn)橐獙?duì)GPIO進(jìn)行操作,BSP文件是基于HAL庫(kù)的,所以需要使用GPIO的HAL庫(kù)(避免GPIO模塊尚未使能,這里使能GPIO模塊)。在[Others]部分需要添加的內(nèi)容為:HALModule=GPIO

(2)添加BSP中需要包含的目錄。所以在[ProjectFiles]中需要添加的內(nèi)容為:HeaderPath=../BSP/STM32H735G-DK

(3)將BSP中的文件添加到工程中,因?yàn)橹恍枰僮鱈ED,所以需要添加“stm32h735g_discovery.c”文件即可,并創(chuàng)建文件組“STM32H735G-DK”。所以在[Groups]中需要添加的內(nèi)容為:Drivers/BSP/STM32H735G-DK=../BSP/STM32H735G-DK /stm32h735g_discovery.c;

綜合上面三點(diǎn),在.extSettings文件中需要添加的內(nèi)容為:

wKgZomUJxrKACj5yAACE61AGVDI982.png

3.1.5. 使用CubeMX生成適用不同IDE的工程代碼

使用CubeMX生成代碼(GENERAGE CODE),分別生成CubeIDE,IAR和KEIL的工程代碼。

wKgZomUJxrKAI44hAAEPg9KeCKE238.png

圖9 使用CubeMX生成代碼

生成代碼后,可以看到不同IDE的工程文件結(jié)構(gòu)如下圖:

wKgZomUJxrKAStiLAAIQvmrKSDI643.png

圖10 STM32CubeIDE

wKgZomUJxrKAKAFdAAKCRCks848799.png

圖11 IAR

wKgZomUJxrOAShYzAAHA-cgV2E4039.png

圖12 KEIL

可以從上面圖中看到,“stm32h735g_discovery.c”文件已經(jīng)被添加到工程中,BSP的目錄也已經(jīng)被包含到工程中。

3.1.6. 添加代碼實(shí)現(xiàn)功能

1.包含“stm32h735g_discovery.h”頭文件。

wKgZomUJxrOAI4i4AABYpXIKb2I714.png

圖13 包含“stm32h735g_discovery.h”

2.使用BSP初始化LED1的配置。

wKgZomUJxrOAS_QCAAB7eq95Vew628.png

圖14 使用BSP初始化LED1的配置

3.添加LED1的翻轉(zhuǎn)操作。

wKgZomUJxrOAVkLOAACmxS9RMLo594.png

圖15 添加LED的翻轉(zhuǎn)操作

結(jié)果:使用這三種IDE進(jìn)行編譯下載后都可以實(shí)現(xiàn)LED1每隔0.5S切換亮/滅狀態(tài)的操作。

04 小結(jié)

使用".extSettings"文件配置工程的文件機(jī)構(gòu),可以做到一次配置,多種平臺(tái)可用的效果,并可以保持配置的一致性。

注意:".extSettings"文件一定要放在.ioc文件相同的目錄下

完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。

wKgZomUJxrOAUHE-AAOyOP2Y2vs467.png訂閱號(hào)

關(guān)注STM32

wKgZomUJxrSAdLdEAACDSIYrXK4535.jpg視頻號(hào)

wKgZomUJxrSAAskIAAAfRB2s2NQ048.pngB站賬號(hào)

點(diǎn)擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記 | 使用STM32CubeMX生成配置代碼的文件結(jié)構(gòu)

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670433
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373472

原文標(biāo)題:應(yīng)用筆記 | 使用STM32CubeMX生成配置代碼的文件結(jié)構(gòu)

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于 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次下載

    STM32cubeMX生成配置rt-thread引用問(wèn)題求解

    如題,本人小白,剛接觸rt-thread,STM32F1/4簡(jiǎn)便配置起見(jiàn)利用cubeMX自動(dòng)生成,測(cè)試幾次后直接蒙了,不知道哪些文件是rt-
    發(fā)表于 09-12 07:21

    求助,關(guān)于STM32Cubemx 6.15版本生成工程的文件編碼的問(wèn)題求解

    之前升級(jí)6.13和6.14版本的時(shí)候重新生成工程會(huì)將文件編碼強(qiáng)制轉(zhuǎn)換成UTF-8格式,導(dǎo)致中文注釋亂碼。但是在安裝文件夾下面的STM32CubeMX.l4j.ini
    發(fā)表于 07-29 12:31

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

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

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

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

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

    近日,由華清遠(yuǎn)見(jiàn)教育科技集團(tuán)精心編撰的教育部高等學(xué)校電子信息類專業(yè)教學(xué)指導(dǎo)委員會(huì)規(guī)劃教材、普通高等教育電子信息類專業(yè)系列教材——《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》重磅
    的頭像 發(fā)表于 04-03 14:54 ?1934次閱讀
    <b class='flag-5'>STM32</b>開(kāi)發(fā)入門進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開(kāi)發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫(kù)》新書(shū)發(fā)布!

    請(qǐng)問(wèn)如何使用STM32CubeMX修改STM32Cube_FW_MP2_V1.0.0固件中的項(xiàng)目例程引腳?

    在該固件包中我找不到任何通過(guò)STM32CubeMX生成的.ioc文件
    發(fā)表于 03-13 06:13

    STM32CubeMX生成代碼就會(huì)覆蓋CMakeLists.txt文件,怎么解決?

    請(qǐng)教一下用STM32CubeMX生成代碼后,我自己加了一個(gè)頭文件和源文件,這些自己加的文件不是要
    發(fā)表于 03-12 08:03

    STM32CubeMX無(wú)法打開(kāi).ioc文件怎么解決?

    我的STM32CubeMX不能打開(kāi)別人的工程文件,雙擊打開(kāi).ioc文件后會(huì)全白,只剩左上角有個(gè)home,什么也點(diǎn)不了,但是我自己可以創(chuàng)建工程,也可以打開(kāi)我自己創(chuàng)建的工程。請(qǐng)問(wèn)我該如何解決
    發(fā)表于 03-12 07:39

    stm32cubemx 6.13.0(win)版本生成代碼中文注釋亂碼怎么解決?

    stm32cubemx 6.13.0(win)版本生成代碼中文注釋亂碼
    發(fā)表于 03-11 07:10

    用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,下載時(shí)報(bào)錯(cuò)是怎么回事?

    我在用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,編譯后沒(méi)有出錯(cuò),再是在下載時(shí)報(bào)錯(cuò): 如果不加載這個(gè)算法文件,那么按鍵圖標(biāo)就是亂碼。
    發(fā)表于 03-11 06:50

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC6編譯器有很多錯(cuò)誤,為什么?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯器有很多錯(cuò)誤,是STM32CubeMX生成FreeRTOS的MDK工程還不支持A
    發(fā)表于 03-11 06:32

    STM32CubeMX生成的FreeRTOS源碼格式如何優(yōu)化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優(yōu)化,空格都是以箭頭的方式呈現(xiàn),觀感很差。FreeRTOS官方下載的源碼則不存在這個(gè)問(wèn)題,說(shuō)明是STM32CubeMX生成
    發(fā)表于 03-10 08:04

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒(méi)有呢?

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒(méi)有呢
    發(fā)表于 03-10 07:44

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對(duì)STM32xxxx_FLASH.ld進(jìn)行了修改。然后再次使用STM32CubeMX對(duì)工程進(jìn)行修改的時(shí)候,
    發(fā)表于 03-10 06:52