
在阅读UM1718文档的时候,发现CubeMX有个比较好的功能,可以用“.extSettings"文件一次,后续不管使用哪个IDE(只要是CubeMX支持的),都不需要再手动配置文件结构或包含头文件路径了,并且可以保持对各个IDE(只包括CubeMX支持的)配置的一致性,减少工作量。也有客户询问怎么添加工程文件的问题,考虑到可能有些同学不太了解这个功能,所以本文对这个功能进行介绍。5 l; ^& d8 Z, \8 [8 [ ".extSettings"文件是对CubeMX配置的补充,是在CubeMX配置的基础上进行的额外配置,不是替换CubeMX的配置,这点需要注意。 总体来说,".extSettings"文件中的配置包含三部分,分别是[ProjectFiles],[Groups]和[Others],下面分别对这三个部分的功能进行介绍。 8 |$ K/ d( v& H1 `2.1. [ProjectFiles] + L4 |4 Y, `- L6 L[ProjectFiles]这个部分主要是用来包含一些目录,例如头文件存放的目录。 / V6 c' @ J4 F+ \) x语法:HeaderPath=<include directory 1 path>;<include directory 2 path> 示例:HeaderPath=../BSP/STM32H735G-DK 说明:这里的路径是相对于“*.cproject”或 “*.project”文件(如果生成的是CubeIDE的工程代码的话)的相对路径。如果生成的是其他IDE的工程代码,则这个路径是相对于其他工程文件的相对路径,例如“*.eww”文件(IAR)或“*.uvprojx”文件(KEIL) $ l0 F/ b9 N- T$ I1 i, f效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,效果如图1,红框部分是通过".extSettings"文件包含的目录,可以看到已经被包含到工程中。 ![]() 配置[ProjectFiles]后CubeIDE工程包含的目录 8 [' m( x8 d! ]; m' H# s w' a7 e) H这个部分主要是用来在工程中创建文件组并且将文件添加到文件组中,用来组织工程的文件结构。 ( ]( d9 e' V( X O- ^$ Z5 ]( g: q语法:<Group name>=<file pathname1>;<file pathname2> ! ?( I( V" `7 R9 d$ \; q示例:Drivers/BSP/STM32H735G-DK=.. /BSP/STM32H735G-DK /stm32h735g_discovery.c; 说明:<Group name>是工程中的文件组名(若不存在则会自动创建);<file pathname>是文件路径。示例中语句的作用是,嵌套创建“Drivers/BSP/STM32H735G-DK”这个文件组(可以多级嵌套创建),并且将“stm32h735g_discovery.c”文件添加进这个文件组中。可以在一个文件组中添加多个文件,只要多个<file pathname>之间通过分号(“;”)隔开即可。 6 [2 T8 T2 ]* M2 f5 k2 E效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,效果如图2 ( e) m; L. L2 Z# ]% H! M/ g4 |![]() [Others]这个部分主要是用来使能一些HAL模板和添加一些预处理定义语句。 / \* Y2 r K' Q# }" ~2.3.1. 添加HAL模板 语法:HALModule=<ModuleName1>;<ModuleName2>; 示例:HALModule=SPI;ADC; ' ]0 E! W6 B( `" r7 J$ h效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,如果使用H7系列的芯片创建的工程,则会自动在“stm32h7xx_hal_conf.h”文件(如果是其他系列的芯片的话,名字会略有区别)中添加”HAL_SPI_MODULE_ENABLED"和“HAL_ADC_MODULE_ENABLED"这两个宏定义,作用是在这个文件中包含SPI与ADC的头文件。如图3所示: 4 B% H; @2 }) u: b5 @6 A![]() 2.3.2. 添加预处理定义语句 8 K1 S: ~0 {5 ^语法:Define=<define1_name>;<define2_name> 示例:Define=TEST_STM32H735G_DEMO 效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,可以看到".extSettings"文件中配置的预定义语句已经被添加到工程中了。 ![]() |
【Wio Lite AI视觉开发套件】+移植TensorFlow Lite
【STM32N6570-DK评测】1.开箱测评
实战经验 | STM32 AI Model Zoo 的安装及实例介绍
【Wio Lite AI视觉开发套件】+简单刷个屏
【Wio Lite AI视觉开发套件】+cube.ai与食物识别
STM32不止于芯,济南站个人参会心得
意法半导体嵌入式 AI 解决方案增加简化机器学习开发的高级功能
用STM32Cube.AI 部署ONNX 模型实操示例:风扇堵塞检测
更简便、更智能的X-CUBE-AI v7.1.0,让您轻松部署AI模型
【Wio Lite AI视觉开发套件】开箱