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

基于STM32-CubeMX经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-2 13:36
2、CubeMX使用的HAL库中宏函数都是使用两个下划线加上全大写字母构成,因此程序中看见双下划线全大写的函数基本都是宏函数。普通宏替换则没有双下划线,但是是由全大写字母组成。7 p/ S( v( Z) x* C/ R! a

" O: I; L  r* m; A
. n% ]# r& n/ E7 g, d$ I, O! ^
3、CubeMX生成的工程需要修改仿真器件,默认是使用ST_link,同时在Utilities选项卡中选择下载后执行,否则下载完需要复位才能执行,并且选择正确的芯片FLASH型号。
* Q" r4 n) U3 l5 f( K
- d5 b- x7 y& y/ i% c2 H
* @& Q& y/ [) @$ X
4、CubeMX生成的工程中更有很多msp函数,msp的全称是MCU Specific Package,没太明白这个的意思,但是在实际程序中是用来初始化外设对应管脚、时钟等的函数,通常HAL库中都有一个msp init和msp deinit函数,但是这些函数都加上了前缀:__weak,这个前缀的解释引用
0 W- H! o) z# A; C: F( {& K__weak是一个宏,和__packed是同一种东西都是gcc的扩展属性:% {- U1 f4 m0 B4 Y, M% I
#define __packed __attribute__((packed))
0 R. W. w. X/ t  y! Z4 H#define __weak __attribute__((weak))
  v6 E" L! q- z; f" B) ]. f如果这个关键字用在函数定义上面,一般情况下和一般函数没有两样。但是当有一个同名函数但是不带__weak被定义时,所有对这个函数的调用都是指向后者(不带__weak那个), 如果有两个一样的函数都用了__weak,那么真正调用那个,就要看连接器了。% W% R, Y' K1 I: r. V# f. k

( C# r$ C2 p6 L7 D: r% f————————————————5 r8 F6 c# l6 [# Y1 c4 Z* D1 e
版权声明:哐哐哐 Quan
1 x5 e9 y6 ?8 X! d9 ~
1 l% S! p8 K2 D+ f) }如有侵权请联系删除4 o  t/ k7 ~  P, A7 T- t
9 {9 ?: G, r( I3 J6 F* M" L$ @8 S

) _! r4 ]4 G/ G& F2 h" T( O
赞 收藏 评论0 发布时间:2023-4-2 13:36

举报

0个回答

所属标签

相似技术帖

官网相关资源

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