"); //-->
warning: #223-D: function "assert_param" declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
这时候我们需要在“Target Options”中的“C/C++”选项卡中添加USE_STDPERIPH_DRIVER、STM32F10X_HD。这样才能使编顺利通过。
知其然了,我们还得知其所以然。下面就一一道来。我们知道,程序的执行是从“main.c”文件开始的,其中必须包含有头文件“stm32f10x.h”。我们打开“stm32f10x.h”,按下“Ctrl+F”键,查找USE_STDPERIPH_DRIVER,在“Find What”栏中输入“USE_STDPERIPH_DRIVER”。点击“Find Next”,出现“USE_STDPERIPH_DRIVER”对应的代码行,重复上边操作三次,第三次的时候我们能在第8296-8298行找到
#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif
这段代码的意思是,只有用预编译指令预定义了“USE_STDPERIPH_DRIVER”,才会将"stm32f10x_conf.h"包含进“stm32f10x.h”中,从而被"main.c"用到。这就解释了,为什么我们没有在“main.c”中包含"stm32f10x_conf.h",而在编译之后却被包含进了"main.c"中。"stm32f10x_conf.h"文件相当于一个开关文件,如果要用到STM32固件库驱动标准外设,则外设驱动头文件是必不可少的,如“stm32f10x_gpio.h”。在"stm32f10x_conf.h"中我们通过代码
#include "stm32f10x_gpio.h"
来实现这个操作。
说到这儿估计大家已经对“USE_STDPERIPH_DRIVER”的来龙去脉有个清晰的认识了吧?其实单从字面意思理解就是“使用标准外设驱动”,在C/C++预定义中加入“USE_STDPERIPH_DRIVER”就是允许“使用标准外设驱动”了。至于加入的“STM32F10X_HD“同样能在文件”stm32f10x.h“通过如上所述的方法通过功能查找来进行解释,其实它也是对于对应硬件的某些定义起开关作用罢了。
另外需要注意的是,在使用不同版本库的时候,因为有所不同(当然包括MDK自带的库),所以我们需要在包含的时候一定要注意选对路径,免得不同版本之间的一些定义由于所处的文件不同而产生冲突。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
CPO成为新宠,长电科技与联电率先卡位
坚固的3U VPX SBC目标是搭载Intel Core Ultra 3实现100TOPS
彩屏和智能手机为手机产业增添活力
稳压器详解:如何从你的 LDO 中榨取最佳性能
电机控制传感技术在工厂自动化中得应用
用门电路组成的脉冲解调器
用门电路组成LED电压表
Stella:Self-Balancing Robot Powered by Nucleus RTOS on TI Stellaris
晶门科技因OLED控制驱动器获“香港工业奖”
飞兆半导体收购Raytheon旗下的射频元件部门
ChatGPT发现数据来源于AI生成的内容
一个警报声程序(原创)
变频式家用电疗仪
一种单片机控制系统键盘显示电路的设计与实现
用CD4046组成的比较式电容检测仪
一个windows上的通过JTAG烧写BF531 Flash的程序
上海2025年集成电路制造业产值同比增长15.1%
pr
实现数字电机控制
英特尔在最新驱动中启用XeSS 3多帧生成技术
英特尔概述了用于AI数据中心封装的厚芯玻璃基板概念
家用穴位电疗仪
“安静”LDO 采用独特的架构来降低噪声并提升 PSRR
IEEE 1588 精密网络同步协议
日本9月晶圆设备订单又增28.9%,订单出货比再降
以太网系列产品通用配置函数库 V1
Elegoo的Centauri Carbon 2 Combo经济型3D打印机现已上市
ADI核心方案助您解锁高级测试仪器设计密码
MotionFire电机控制开发平台
以太网系列产品通用配置软件