色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

STM32單片機 ? 來源:未知 ? 2023-09-19 09:35 ? 次閱讀

wKgZomUJxrCAdB5UAAHUHXdxAL4153.gif

關(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)被包含到工程中。

wKgZomUJxrCAVLQTAAFkH2I-rRk167.png

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

2.2. [Groups]

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

語法:=;

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

說明:是工程中的文件組名(若不存在則會自動創(chuàng)建);是文件路徑。示例中語句的作用是,嵌套創(chuàng)建“Drivers/BSP/STM32H735G-DK”這個文件組(可以多級嵌套創(chuàng)建),并且將“stm32h735g_discovery.c”文件添加進這個文件組中。可以在一個文件組中添加多個文件,只要多個之間通過分號(“;”)隔開即可。

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

wKgZomUJxrCAcQmUAADgIJUk-PE408.png

圖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所示:

wKgZomUJxrGAQrPsAANOMq_2QJw578.png

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

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

語法:Define=;

示例:Define=TEST_STM32H735G_DEMO

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

wKgZomUJxrGAbI3KAAHy8uiJd2E179.png

圖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所示:

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文件同級目錄下創(chuàng)建".extSettings"文件。如下圖所示:

wKgZomUJxrKAaZ6MAABqolDo260071.png

圖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)容為:

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. 添加代碼實現(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進行編譯下載后都可以實現(xiàn)LED1每隔0.5S切換亮/滅狀態(tài)的操作。

04 小結(jié)

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

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

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

wKgZomUJxrOAUHE-AAOyOP2Y2vs467.png訂閱號

關(guān)注STM32

wKgZomUJxrSAdLdEAACDSIYrXK4535.jpg視頻

wKgZomUJxrSAAskIAAAfRB2s2NQ048.pngB站賬號

點擊“閱讀原文”,可下載原文檔


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

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


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(liá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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    stm32用串口燒錄怎么設(shè)置

    準備工作 確保您擁有STM32開發(fā)板和相應(yīng)的硬件設(shè)備,如USB轉(zhuǎn)串口模塊。 安裝STM32CubeMXSTM32CubeProgrammer軟件,這些是ST官方提供的工具,用于配置
    的頭像 發(fā)表于 08-22 09:33 ?1448次閱讀

    如何利用STM32CubeMX生成的keil項目如何關(guān)閉全局中斷?

    利用STM32CubeMX生成的keil項目如何關(guān)閉全局中斷?中斷相關(guān)的函數(shù)在哪個頭文件里? 如何關(guān)閉系統(tǒng)滴答定時器中斷
    發(fā)表于 05-16 07:52

    stm32CubeMX怎么添加中斷以及相應(yīng)的代碼或者.c和.h文件

    我想咨詢一下,用stm32CubeMX生成的工程里邊 怎么添加中斷以及相應(yīng)的代碼或者.c和.h文件。我跑的是freertos系統(tǒng),能不能在stm32
    發(fā)表于 04-29 08:17

    如何在STM32CUBEMX生成代碼中添加自己的模塊文件?

    如果我想在STM32CUBEMX生成代碼中添加自己的模塊文件,且在更新引腳配置時不會丟失,要如何實現(xiàn)。
    發(fā)表于 04-26 06:15

    請問STM8CubeMX是否可以生成代碼?

    STM32CubeMX可以配置外部中斷,但是在STM8CubeMX中沒有找到相關(guān)配置的地方。 1. 請問STM8CubeMX是否可以
    發(fā)表于 04-12 06:07

    STM32cubemx的庫和KEIL的庫有什么不同?

    STM32cubemx軟件有對應(yīng)各個系列芯片的庫. 使用cubemx,生成代碼框架,比如生成MDK的代碼
    發(fā)表于 04-11 06:02

    STM32CubeMX生成代碼軟件卡死的原因?怎么解決?

    STM32CubeMX 生成代碼 軟件卡死!在生成代嗎時,一直卡死在如圖所示的狀態(tài),進度條一直就不走了。試過多次,一直如此。請問如何解決該問題,原因可能是什么?
    發(fā)表于 04-10 06:03

    關(guān)于STM32CubeMX FatFs遇到的問題求解

    大家好!有個問題請教,我在使用STM32CubeMX 生成帶FreeRTOS,F(xiàn)atFs 的代碼時,syscall.c 文件中使用了 osSemaphoreCreate
    發(fā)表于 04-09 07:39

    stm32cubemx生成的can代碼,運行調(diào)試顯示顯性位錯誤的原因?

    stm32cubemx生成的can代碼,運行調(diào)試顯示顯性位錯誤,找不到原因,芯片是stm32f103z,求助各位。
    發(fā)表于 04-07 07:56

    STM32CubeMX生成stm32cubeide工程報錯的原因?怎么解決?

    使用STM32CubeMX,建立了STM32F103VC的工程文件,能夠生成IAR工程,正常使用沒有問題。由于IAR調(diào)試時老是閃退,想換STM32
    發(fā)表于 04-07 07:14

    STM32CubeMX配置FREERTOS后無法生成代碼怎么解決?

    stm32cubemx配置了freertos后報錯,disable了freertos又能正常生成代碼
    發(fā)表于 03-28 09:55

    stm32cubeMX如何配置4*4矩陣鍵盤?

    stm32cubeMX如何配置4*4矩陣鍵盤,求大佬給代碼指導(dǎo)一下,看了太多代碼,自己迷亂了
    發(fā)表于 03-28 09:27

    使用STM32CubeMX生成的keil文件,在keil中運行時報錯的原因?

    在使用STM32CubeMX過程中,生成的keil文件。 file:///C:/Users/Zhanggp/AppData/Local/Temp/ksohtml11808/wps1.jpg在keil 中運行時出現(xiàn)了報錯.
    發(fā)表于 03-26 07:10

    使用STM32F103RCT6開發(fā)USB設(shè)備,STM32CubeMx生成代碼遇到的問題求解

    大家好,最近在使用STM32F103RCT6開發(fā)USB設(shè)備,使用的是STM32CubeMx生成代碼,但查看代碼發(fā)現(xiàn)一個問題,HAL_PCD
    發(fā)表于 03-21 08:30

    stm32cubemx生成代碼卡死在copying上,卸載重裝也沒用怎么解決?

    stm32cubemx生成代碼卡死在copying上,卸載重裝也沒用
    發(fā)表于 03-14 07:20
    主站蜘蛛池模板: 久久五月综合婷婷中文云霸高清| 宅男午夜大片又黄又爽大片| 日本艳妓BBW高潮一19| 美女伸开两腿让我爽| 老司机亚洲精品影院| 久久极品视频| 久久国产亚洲电影天堂| 九九热精品免费观看| 久久99re2在线视频精品| 精品淑女少妇AV久久免费| 国产永不无码精品AV永久| 国产色精品久久人妻无码看片软件 | 亚洲精品动漫免费二区| 微福利92合集| 亚婷婷洲AV久久蜜臀无码| 迅雷成人论坛| 亚洲伊人久久一次| 伊人网站在线| 97国产在线播放| qvod小电影| 国产AV果冻传奇麻豆| 国产精品熟女人妻| 韩国和日本免费不卡在线| 九九热在线视频精品店| 久久这里只有精品国产99| 男女一边摸一边做羞羞的事情免费| 噜噜噜狠狠夜夜躁| 欧美日韩永久久一区二区三区| 全免费A敌肛交毛片免费懂色AV| 色悠久久久久综合欧美99| 甜性涩爱免费下载| 亚洲AV无码专区国产精品99| 亚洲字幕久久| 99re久久热在线视频| 高清视频在线观看SEYEYE| 国产小视频免费看| 久久久GOGO无码啪啪艺术| 欧美国产精品主播一区| 忘忧草在线影院WWW日本动漫| 亚洲无AV在线中文字幕| 99热久久爱五月天婷婷|