STM32F10xxx_Keil中添加的预定义宏
STM32F10xxx_Keil中添加的预定义宏
更新记录
version | status | description | date | author |
---|---|---|---|---|
V1.0 | C | Create Document | 2018.10.15 | John Wan |
status:
C―― Create,
A—— Add,
M—— Modify,
D—— Delete。
Use Standard Peripheral Driver
在Keil MDK环境中使用STM32固件库建立工程时,可能会遇到编译不通过的问题。出现如下警告或错误提示:
warning:#223-D:function"assert_param"declaredimplicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
这时候我们需要在设置面板的“TargetOptions”
中“C/C++”
选项卡添加USE_STDPERIPH_DRIVER. STM32F10X_HD
。这样才能使编顺利通过。
知其然了,我们还得知其所以然。下面就一一道来。我们知道,程序的执行是从main.c
文件开始的,其中必须包含有头文件stm32f10x.h
。打开stm32f10x.h
,查找USE_STDPERIPH_DRIVER
,在第8296-8298行找到
#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif
这段代码的意思是,只有定义了USE_STDPERIPH_DRIVER
,才包含stm32f10x_conf.h
,从而被main.c
用到。那么stm32f10x_conf.h
的作用是什么呢?它相当于一个总的开关文件,如果要用到STM32固件库驱动标准外设,则外设驱动头文件是必不可少的,如stm32f10x_gpio.h
等。而这些文件的添加都是在stm32f10x_conf.h
中进行。
而在Keil MDK的面板添加USE_STDPERIPH_DRIVER
,其实就是Keil方式的全局定义,从而使stm32f10x.h
文件包含stm32f10x_conf.h
文件。
同样的Keil MDK面板中的STM32F10X_HD
是定义芯片的类型,HD
表示芯片是大容量产品。