STM32-CubeMX学习笔记

例程参考链接:http://bbs.elecfans.com/jishu_714935_1_1.html

1、首次使用参见文档:http://blog.csdn.net/tq384998430/article/details/53466263

2、CubeMX使用的HAL库中宏函数都是使用两个下划线加上全大写字母构成,因此程序中看见双下划线全大写的函数基本都是宏函数。普通宏替换则没有双下划线,但是是由全大写字母组成。

3、CubeMX生成的工程需要修改仿真器件,默认是使用ST_link,同时在Utilities选项卡中选择下载后执行,否则下载完需要复位才能执行,并且选择正确的芯片FLASH型号。

4、CubeMX生成的工程中更有很多msp函数,msp的全称是MCU Specific Package,没太明白这个的意思,但是在实际程序中是用来初始化外设对应管脚、时钟等的函数,通常HAL库中都有一个msp init和msp deinit函数,但是这些函数都加上了前缀:__weak,这个前缀的解释引用:http://blog.csdn.net/adaptiver/article/details/6695637

__weak是一个宏,和__packed是同一种东西都是gcc的扩展属性:
#define __packed __attribute__((packed))
#define __weak __attribute__((weak))
如果这个关键字用在函数定义上面,一般情况下和一般函数没有两样。但是当有一个同名函数但是不带__weak被定义时,所有对这个函数的调用都是指向后者(不带__weak那个), 如果有两个一样的函数都用了__weak,那么真正调用那个,就要看连接器了。

5、

你可能感兴趣的:(STM32)