STM32CubeMX + Keil 开发技巧:使用 .exSettings 保留自定义文件夹与文件组
本文介绍一种在 STM32CubeMX 重新生成代码时,避免自定义文件夹和文件组被删除的方法
适用于 STM32CubeMX + Keil 开发环境
创作背景
- 在开发过程中常常要给项目分层,但是每次从 STM32CubeMX 重新生成代码,都会删除用户手动创建的文件夹和工程组,导致需要反复配置
- 查阅 ST 官方论坛后发现,利用
.exSettings文件可以解决该问题
.exSettings 文件模板
- 此处只给出本人常用的[ProjectFiles]和[Groups],暂无[Others]
- 该
.exSettings文件需要放在与.mxproject相同的目录下(通常就是.ioc文件所在目录)
[ProjectFiles]
HeaderPath=<include directory 1 path>;<include directory 2 path>
[Groups]
<Group name>=<file pathname1>;<file pathname2>
具体介绍
[ProjectFiles]
- 语法:
HeaderPath=<include directory path> - 作用:在 STM32CubeMX 重新生成代码后,会自动将此相对路径添加到 keil 配置中
- 支持引用多个相对路径,用“;”隔开即可
- 注意:填入的路径为相对路径,是头文件文件夹相对于 STM32CubeMX 生成的.mxproject 文件的路径
使用案例
- 内容:添加 Services 文件夹中的 Srv_UART.h 路径
- Srv_UART.h 存放于 Services 文件夹中的 UART 文件夹下:

- Srv_UART.h 存放于 Services 文件夹中的 UART 文件夹下:
- .exSettings 配置如下:
[ProjectFiles]
HeaderPath=../Services/UART
- 使用 STM32CubeMX 重新生成项目
- 结果:成功添加头文件包含路径

Group
- 语法:
<Group name>=<file pathname> - 作用:创建文件组并将文件添加到文件组中
- 文件组名不存在时会自动创建,同时支持多级嵌套创建
- 支持一个文件组中添加多个文件,用“;”隔开即可
- 注意:文件组名不一定要和文件路径相同
使用案例
- 内容:创建文件组 Services/UART,同时添加 Srv_UART.c 文件
- Srv_UART.c 与 Srv_UART.h 存放位置相同
- .exSettings 配置如下:
[Groups]
Services/UART=../Services/UART/Srv_UART.c
-
使用 STM32CubeMX 重新生成项目
-
结果:成功创建并添加文件

-
另外:
.exSettings默认只会将.c文件添加到工程组中。头文件只要路径被包含(通过[ProjectFiles]配置),编译时就能找到。如果你希望头文件也在工程树中显示,可以手动右键工程组 → Add Existing Files to Group 添加.h文件


浙公网安备 33010602011771号