在uVision中新建STM32工程后,需求从STM32规范库中复制规范外设驱动到自己的工程目录中,此刻需求在工程设置->C++/C++选项卡下的Define文本框中键入这两个大局宏界说。
STM32F40_41xxx,USE_STDPERIPH_DRIVER
USE_STDPERIPH_DRIVER
这个阐明你在运用规范外设驱动,有自己的外设装备文件,即stm32f10x_conf.h,具体可检查stm32f4xx.h中12026-12017行。关于stm32f4xx_conf.h
文件中的内容,是有挑选的#inlude “stm32f4xx_conf.h”,这样只编译需求的外设文件,削减hex文件的体积。假如没有运用这个宏,或没有stm32f10x_conf.h文件,那么编译时会有一大堆莫名美妙地过错,这是由于MDK中也自带了stm32f40x_xxxx.h文件,使得编译器运用MDK中.h文件,而.c文件和.h文件版本是不匹配的。
留意,假如是库文件的过错,那一定是你工程装备有问题。
Use Standard Peripheral Driver
在Keil MDK环境中运用STM32固件库树立工程时,可能会遇到编译不经过的问题。呈现如下正告或过错提示:
warning:#223-D:funcTIon”assert_param“declaredimplicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
这时候咱们需求在设置面板的“TargetOpTIons”中“C/C++”选项卡增加STM32F40_41xxx,USE_STDPERIPH_DRIVER。这样才能使编顺畅经过。
知其然了,咱们还得知其所以然。下面就一一道来。咱们知道,程序的履行是从main.c文件开端的,其间有必要包括有头文件stm32f4xx.h。翻开stm32f4xx.h,查找USE_STDPERIPH_DRIVER,在第12026-12017行找到
#ifdef USE_STDPERIPH_DRIVER #include “stm32f4xx_conf.h”