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 文件夹下:
      项目根目录
  • .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 重新生成项目

  • 结果:成功创建并添加文件
    Pasted image 20260409170625

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


posted @ 2026-04-09 17:48  临祁  阅读(170)  评论(0)    收藏  举报