你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32CubeMX配置生成文件结构

[复制链接]
guoyuli 发布时间:2023-9-19 14:53
在阅读UM1718文档的时候,发现CubeMX有个比较好的功能,可以用“.extSettings"文件一次,后续不管使用哪个IDE(只要是CubeMX支持的),都不需要再手动配置文件结构或包含头文件路径了,并且可以保持对各个IDE(只包括CubeMX支持的)配置的一致性,减少工作量。也有客户询问怎么添加工程文件的问题,考虑到可能有些同学不太了解这个功能,所以本文对这个功能进行介绍。4 f' F) v7 g) T( d
".extSettings"文件是对CubeMX配置的补充,是在CubeMX配置的基础上进行的额外配置,不是替换CubeMX的配置,这点需要注意。

7 e, \; M& R9 l! I
总体来说,".extSettings"文件中的配置包含三部分,分别是[ProjectFiles],[Groups]和[Others],下面分别对这三个部分的功能进行介绍。

) a$ T* F; S- h0 S
2.1. [ProjectFiles]
9 d/ R2 s% R; {0 A) Z2 `
[ProjectFiles]这个部分主要是用来包含一些目录,例如头文件存放的目录。

# J: o8 @, Y1 e) p: O
语法:HeaderPath=<include directory 1 path>;<include directory 2 path>

3 i- Z( D1 P6 W9 p' A9 q9 W/ _
示例:HeaderPath=../BSP/STM32H735G-DK
% K" x- k' D; W! F4 S
说明:这里的路径是相对于“*.cproject”或 “*.project”文件(如果生成的是CubeIDE的工程代码的话)的相对路径。如果生成的是其他IDE的工程代码,则这个路径是相对于其他工程文件的相对路径,例如“*.eww”文件(IAR)或“*.uvprojx”文件(KEIL)

- a- ]+ T  g# K/ i# @) E
效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,效果如图1,红框部分是通过".extSettings"文件包含的目录,可以看到已经被包含到工程中。
640.png
配置[ProjectFiles]后CubeIDE工程包含的目录
' s/ E" v( L  Q, W1 k
这个部分主要是用来在工程中创建文件组并且将文件添加到文件组中,用来组织工程的文件结构。

  c- ?/ c7 |% [& J
语法:<Group name>=<file pathname1>;<file pathname2>
( ]4 O! H" d" u# k* |
示例:Drivers/BSP/STM32H735G-DK=.. /BSP/STM32H735G-DK /stm32h735g_discovery.c;

% p3 j' r0 k' m# C# i0 L# j7 u- |
说明:<Group name>是工程中的文件组名(若不存在则会自动创建);<file pathname>是文件路径。示例中语句的作用是,嵌套创建“Drivers/BSP/STM32H735G-DK”这个文件组(可以多级嵌套创建),并且将“stm32h735g_discovery.c”文件添加进这个文件组中。可以在一个文件组中添加多个文件,只要多个<file pathname>之间通过分号(“;”)隔开即可。

/ ^/ l% |2 C2 y6 }" x+ L
效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,效果如图2
& \0 T3 b  T7 {) J) b- p
微信图片_20230917110746.png

$ u% j. D  U" Q/ D! S
[Others]这个部分主要是用来使能一些HAL模板和添加一些预处理定义语句。
. {& B: D* `4 e( d: b

7 {) {1 U; I2 `$ V! G" ^
2.3.1. 添加HAL模板

  G6 K) W; i% N) L8 ~# ?
语法:HALModule=<ModuleName1>;<ModuleName2>;
- F1 r8 a* q; Y4 E
示例:HALModule=SPI;ADC;

0 w& g4 h' h1 A- G. y) [5 S$ Z7 n  Y
效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,如果使用H7系列的芯片创建的工程,则会自动在“stm32h7xx_hal_conf.h”文件(如果是其他系列的芯片的话,名字会略有区别)中添加”HAL_SPI_MODULE_ENABLED"和“HAL_ADC_MODULE_ENABLED"这两个宏定义,作用是在这个文件中包含SPI与ADC的头文件。如图3所示:

" t5 p+ b5 B' g5 O* i! j1 `+ U
640 (1).png

. d8 s4 O$ E+ P2 [
2.3.2. 添加预处理定义语句

8 I& _# }& e8 v. ~4 B
语法:Define=<define1_name>;<define2_name>

$ [( {; V, i2 [: Y. B, Y
示例:Define=TEST_STM32H735G_DEMO

9 C/ g9 F+ j- s6 N5 y% N
效果:在".extSettings"文件中添加示例中的内容,重新生成代码后,可以看到".extSettings"文件中配置的预定义语句已经被添加到工程中了。
640 (2).png
( ^: |0 O7 [8 G1 H: _$ y2 f( F& I
赞 收藏 评论0 发布时间:2023-9-19 14:53

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版