女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

應用筆記 | 使用STM32CubeMX生成配置代碼的文件結構

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

wKgZomUJxrCAdB5UAAHUHXdxAL4153.gif

關鍵字:.extSettings,文件結構,BSP

目錄預覽

1.前言

2..extSetting文件的作用

3.使用實例

4.小結

01 前言

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

02

.extSettings文件的作用

".extSettings"文件是對CubeMX配置的補充,是在CubeMX配置的基礎上進行的額外配置,不是替換CubeMX的配置,這點需要注意。

總體來說,".extSettings"文件中的配置包含三部分,分別是[ProjectFiles],[Groups]和[Others],下面分別對這三個部分的功能進行介紹。

2.1. [ProjectFiles]

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

語法:HeaderPath=;

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

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

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

wKgZomUJxrCAVLQTAAFkH2I-rRk167.png

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

2.2. [Groups]

這個部分主要是用來在工程中創建文件組并且將文件添加到文件組中,用來組織工程的文件結構。

語法:=;

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

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

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

wKgZomUJxrCAcQmUAADgIJUk-PE408.png

圖2 配置[Groups]后CubeIDE工程的文件結構

2.3. [Others]

[Others]這個部分主要是用來使能一些HAL模板和添加一些預處理定義語句。

2.3.1. 添加HAL模板

語法:HALModule=;;

示例:HALModule=SPI;ADC;

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

wKgZomUJxrGAQrPsAANOMq_2QJw578.png

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

2.3.2. 添加預處理定義語句

語法:Define=;

示例:Define=TEST_STM32H735G_DEMO

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

wKgZomUJxrGAbI3KAAHy8uiJd2E179.png

圖4 配置[Other]的Define后自動在工程中添加的預處理語句

03 使用實例

下面的實例基于STM32H735G-DK板,使用“STM32Cube_FW_H7_V1.10.0”中的BSP驅動。要達到的目的是使板子上的LED1每隔0.5S切換一次亮/滅狀態。下面是實現的步驟:

3.1.1. 創建CubeMX配置文件

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

wKgZomUJxrGABXLtAABSrFAZzFg338.png

圖5 保存CubeMX產生的配置文件

3.1.2. 添加BSP文件

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

wKgZomUJxrGAVN9uAABaR3a0KPE232.png

圖6 復制“BSP”到工程目錄下

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

wKgZomUJxrKABTXHAAREZK74X2Q549.png

圖7 添加BSP的配置文件

3.1.3. 創建.extSettings文件

在.ioc文件同級目錄下創建".extSettings"文件。如下圖所示:

wKgZomUJxrKAaZ6MAABqolDo260071.png

圖8 添加.extSettings文件

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

3.1.4. 修改.extSettings文件的內容

(1)因為要對GPIO進行操作,BSP文件是基于HAL庫的,所以需要使用GPIO的HAL庫(避免GPIO模塊尚未使能,這里使能GPIO模塊)。在[Others]部分需要添加的內容為:HALModule=GPIO

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

(3)將BSP中的文件添加到工程中,因為只需要操作LED,所以需要添加“stm32h735g_discovery.c”文件即可,并創建文件組“STM32H735G-DK”。所以在[Groups]中需要添加的內容為:Drivers/BSP/STM32H735G-DK=../BSP/STM32H735G-DK /stm32h735g_discovery.c;

綜合上面三點,在.extSettings文件中需要添加的內容為:

wKgZomUJxrKACj5yAACE61AGVDI982.png

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

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

wKgZomUJxrKAI44hAAEPg9KeCKE238.png

圖9 使用CubeMX生成代碼

生成代碼后,可以看到不同IDE的工程文件結構如下圖:

wKgZomUJxrKAStiLAAIQvmrKSDI643.png

圖10 STM32CubeIDE

wKgZomUJxrKAKAFdAAKCRCks848799.png

圖11 IAR

wKgZomUJxrOAShYzAAHA-cgV2E4039.png

圖12 KEIL

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

3.1.6. 添加代碼實現功能

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

wKgZomUJxrOAI4i4AABYpXIKb2I714.png

圖13 包含“stm32h735g_discovery.h”

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

wKgZomUJxrOAS_QCAAB7eq95Vew628.png

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

3.添加LED1的翻轉操作。

wKgZomUJxrOAVkLOAACmxS9RMLo594.png

圖15 添加LED的翻轉操作

結果:使用這三種IDE進行編譯下載后都可以實現LED1每隔0.5S切換亮/滅狀態的操作。

04 小結

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

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

完整內容請點擊“閱讀原文”下載原文檔。

wKgZomUJxrOAUHE-AAOyOP2Y2vs467.png訂閱號

關注STM32

wKgZomUJxrSAdLdEAACDSIYrXK4535.jpg視頻

wKgZomUJxrSAAskIAAAfRB2s2NQ048.pngB站賬號

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


原文標題:應用筆記 | 使用STM32CubeMX生成配置代碼的文件結構

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


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6063

    文章

    44929

    瀏覽量

    647159
  • STM32
    +關注

    關注

    2290

    文章

    11017

    瀏覽量

    362471

原文標題:應用筆記 | 使用STM32CubeMX生成配置代碼的文件結構

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    STM32CubeMX無法打開.ioc文件怎么解決?

    我的STM32CubeMX不能打開別人的工程文件,雙擊打開.ioc文件后會全白,只剩左上角有個home,什么也點不了,但是我自己可以創建工程,也可以打開我自己創建的工程。請問我該如何解決
    發表于 03-12 07:39

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

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

    用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,下載時報錯是怎么回事?

    我在用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,編譯后沒有出錯,再是在下載時報錯: 如果不加載這個算法文件,那么按鍵圖標就是亂碼。
    發表于 03-11 06:50

    STM32CubeMX生成的FreeRTOS源碼格式如何優化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優化,空格都是以箭頭的方式呈現,觀感很差。FreeRTOS官方下載的源碼則不存在這個問題,說明是STM32CubeMX生成
    發表于 03-10 08:04

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

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

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

    使用STM32CubeMX生成CMake工程之后,對STM32xxxx_FLASH.ld進行了修改。然后再次使用STM32CubeMX對工程進行修改的時候,
    發表于 03-10 06:52

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,為什么?

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,參考其他代碼做了初始化操作,可以通過HAL_U
    發表于 03-07 07:48

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?658次下載

    工程師開發利器:STM32CubeMX 與 eDesignSuite 的協同開發

    。與 STM32CubeMX 的功耗配置結合,可優化系統級電源方案。電機控制方案提供無刷直流電機(BLDC)、永磁同步電機(PMSM)的控制算法庫和參考設計。通過生成的控制代碼
    的頭像 發表于 02-26 14:07 ?634次閱讀
    工程師開發利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協同開發

    使用stm32cubeMX無法生成mdk工程文件

    幾年前使用過cubemx,可以生成keil的工程文件。最近有個工程使用cubemx創建,結果只能生成st
    發表于 01-04 20:03

    STM32CubeMX生成代碼,是怎樣的HAL架構?

    需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL庫外設和時鐘的初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關函數實現你想實現的功能。CubeMX生成代碼包含
    的頭像 發表于 01-01 21:01 ?673次閱讀
    <b class='flag-5'>STM32CubeMX</b><b class='flag-5'>生成</b>的<b class='flag-5'>代碼</b>,是怎樣的HAL架構?

    STM32CubeMX的菜單介紹

    相信初學者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創建一
    的頭像 發表于 12-25 21:03 ?408次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    stm32用串口燒錄怎么設置

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

    如何使用STM32CubeMX修改STM32Cube_FW_MP2?

    在該固件包中我找不到任何通過STM32CubeMX生成的.ioc文件
    發表于 07-24 06:17