目录
| 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表示芯片是大容量产品。
原文:https://www.cnblogs.com/wanjianjun777/p/10252332.html