STM32F10xxx_Keil中添加的预定义宏

Posted wanjianjun777

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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表示芯片是大容量产品







以上是关于STM32F10xxx_Keil中添加的预定义宏的主要内容,如果未能解决你的问题,请参考以下文章

stm32学习-创建工程项目

system_stm32f10x.c文件了解

如何读stm32f407 id

STM32STM32F103C8T6+nrf24l01收发示例

Stm32启动文件选择

STM32项目编译报错,全局宏定义与芯片不一致