历史上的今天
返回首页

历史上的今天

今天是:2025年01月02日(星期四)

正在发生

2020年01月02日 | keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因

2020-01-02 来源:eefocus

  初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题。出现如下警告或错误提示:

  warning: #223-D: function "assert_param" declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

  这时候我们需要在“Target Options”中的“C/C++”选项卡中如图-2所示红框中添加USE_STDPERIPH_DRIVER、STM32F10X_HD。这样才能使编顺利通过。

图-2

  知其然了,我们还得知其所以然。下面就听Herison给大家一一道来。我们知道,程序的执行是从“main.c”文件开始的,其中必须包含有头文件“stm32f10x.h”。我们打开“stm32f10x.h”,按下“Ctrl+F”键,查找USE_STDPERIPH_DRIVER,在“Find What”栏中输入“USE_STDPERIPH_DRIVER”。如图-3所示。点击“Find Next”,出现“USE_STDPERIPH_DRIVER”对应的代码行,重复上边操作三次,第三次的时候我们能在第8296-8298行找到如图-4所示代码段。

图-3

图-4

 

  这段代码的意思是,只有用预编译指令预定义了“USE_STDPERIPH_DRIVER”,才会将"stm32f10x_conf.h"包含进“stm32f10x.h”中,从而被"main.c"用到。这就解释了,为什么我们没有在“main.c”中包含"stm32f10x_conf.h",而在编译之后却被包含进了"main.c"中,出现如图-5所示的情况。

  "stm32f10x_conf.h"文件相当于一个开关文件,如果要用到STM32固件库驱动标准外设,则外设驱动头文件是必不可少的,如“stm32f10x_gpio.h”。

  在"stm32f10x_conf.h"中我们通过代码#include "stm32f10x_gpio.h"来实现这个操作。

图-5

  说到这儿估计大家已经对“USE_STDPERIPH_DRIVER”的来龙去脉有个清晰的认识了吧?其实单从字面意思理解就是“使用标准外设驱动”,在C/C++预定义中加入“USE_STDPERIPH_DRIVER”就是允许“使用标准外设驱动”了。至于加入的“STM32F10X_HD“同样能在文件”stm32f10x.h“通过如上所述的方法通过功能查找来进行解释,其实它也是对于对应硬件的某些定义起开关作用罢了。

推荐阅读

史海拾趣

Eby Company公司的发展小趣事

为了提供更好的物流服务,eBay推出了国际运送计划(eBay International Shipping)。该计划允许卖家将来自同一订单的多件物品合并在一个包裹中运送,从而减少了买家支付的运费。这一举措不仅提高了物流效率,也增加了买家的购买意愿。eBay还与其他物流公司合作,提供更快捷、更可靠的配送服务。

ELECTRONIC ASSEMBLY公司的发展小趣事

在电子产业的浪潮中,一家名为“智汇电子组装”的初创公司凭借其独特的技术优势迅速崛起。公司创始人是一位资深的电子工程师,他带领着一支由多名技术精英组成的团队,专注于研发高效、精确的电子组装技术。通过不断创新和优化,智汇电子组装成功开发出一套自动化组装设备,大大提高了生产效率,降低了成本。凭借这一技术优势,公司逐渐在电子组装市场上崭露头角,赢得了众多客户的青睐。

Codeco Corporation Of Vermont公司的发展小趣事

随着公司的发展,Codeco逐渐意识到技术创新的重要性。他们投入大量资源研发新技术,不断提升产品的性能和用户体验。在一次关键的研发项目中,Codeco的团队突破了某项技术难题,推出了一款引领行业潮流的新产品。这一创新不仅为公司带来了可观的收益,也进一步巩固了Codeco在电子行业的地位。

FUJITSU(富士通)公司的发展小趣事

随着公司的发展,Codeco逐渐意识到技术创新的重要性。他们投入大量资源研发新技术,不断提升产品的性能和用户体验。在一次关键的研发项目中,Codeco的团队突破了某项技术难题,推出了一款引领行业潮流的新产品。这一创新不仅为公司带来了可观的收益,也进一步巩固了Codeco在电子行业的地位。

FCI / Amphenol公司的发展小趣事

FCI公司起源于1988年,当时由Framatome组建,其初衷是作为核能领域外的一个多样化经营项目。然而,随着市场的变化和公司的战略调整,FCI逐渐将重心转向连接器制造。经过20多次的精心收购和策略性扩张,FCI在短短20年内便成长为全球最大的连接器制造公司之一。这一转变不仅展现了FCI对市场敏锐的洞察力,也体现了其卓越的管理能力和执行力。

Control Sciences Inc公司的发展小趣事

随着技术的不断进步,Control Sciences Inc开始寻求更广阔的市场空间。公司积极参与国内外各大电子展会,展示其先进的产品和技术。同时,公司还加大了市场推广力度,与多个知名企业建立了战略合作关系。通过这些努力,Control Sciences Inc的产品逐渐走进了更多的企业和家庭,其品牌影响力也日益增强。

问答坊 | AI 解惑

DS18B20 测温程序完全解读

基于51的DS18B20 测温程序完全解读…

查看全部问答>

基于PROTEUS的俄罗斯方块

本帖最后由 paulhyde 于 2014-9-15 09:43 编辑 基于PROTEUS的俄罗斯方块 [ 本帖最后由 open82977352 于 2010-9-17 08:37 编辑 ]  …

查看全部问答>

PAL制式的图像数字处理后显示到小液晶屏

我想把PAL制式的视频信号经过视频AD后转换成数字的,然后显示在2.4存的小液晶上,可是对图像不怎么了解,但是又很想弄,希望高手给点意见。深表感谢!!!…

查看全部问答>

安易网吧防火墙

文章出自:http://blog.sina.com.cn/s/blog_5997675201009ya6.htm   最近各地网吧经常发生掉线的现象,经技术人员发现有人恶意攻击网吧,发送大量UDP包堵塞网吧的网络,包小量大,每秒几万条,抓包分析,发现都是随机生成的虚假IP,根本 ...…

查看全部问答>

为什么安装不了EVC ,到100%的时候电脑卡住

我的机子装不了eVC4,安装到配置wince platform manager 4.0 时,电脑就卡住了 就鼠标还可以动 重启后就出现未识别的硬件和硬件安装向导, 提示什么虚拟PC的 只要安装也就卡机了. 这是怎么回事? 我电脑是SP3的,台式机一样的系统都安装 ...…

查看全部问答>

明基 M23的AT+GNC指令都能得到那些基站的信息呢?专业人士请指教!

我需要使用手机邻近的几个基站的位置信息,但是不知道通过M23 GPRS模块的 AT+GNC指令能否得到位置信息呢,下面是使用这个指令之后可能得到的一个结果,请专业人士指教一下每组16进制的数的含义都是什么呢,从其中能得到位置信息么? 如果不能得话 ...…

查看全部问答>

STM32如此的连接电路,参数允许的?

                                 3。3V TO 5。0V …

查看全部问答>

SPI2发送使用DMA操作的数据不对

我使用SPI2操作M25P64,在写M25P64的时候,如果使用软件发送,读回来的数据是正确的,但是如果使用DMA发送数据即不正确。读回来的数据是0xff.下面是写M25P64的代码,帮忙看看是什么问题?是不是发送用DMA时没有对时钟进行控制,造成对SPI2写溢 ...…

查看全部问答>

流水灯问题

我用PIC单片机C口连灯,D口连开关,程序应该怎么设计才能流水灯显示呢,就是按下开关后灯从RC0开始亮,然后RC0连的灯灭,RC1连的亮RC0到RC7 1个1个顺序点亮(点亮1盏的时候其他6盏是灭的)…

查看全部问答>

关于PIC32MX320F128L单片机的RTCC和计时器功能

各位高手好: 小弟最近做一个监控,选择了PIC32MX320F128L单片机: 计时要求如下: 1.       1.系统持续主电工作48h后每隔30(+/-2)d应能自动由主电路工作状态转入应急工作状态并持续30s~180s,然后自动回复到主 ...…

查看全部问答>