STM32F1mate20x固件件库版本的问题?

使用STM32f10x的库文件编程时在写好某個C类型的文件并编译后,为什么会在下面挂着许多外设的头文件很奇怪,明明这个C文件里面没有包括这些头文件通过观察,我们发现這些C文件都有一个共同特点就是都包含了stm32f10x.h 文件,那为什么包含stm32f10x.h后就会在下面挂着许多外设的头文件原因肯定在stm32f10x.h 里面,仔细观察stm32f10x.h会发現,里面没有对外设头文件的直接包含但存在着其他4个头文件,分别为:

core_cm3.h为内核头文件里面主要完成了对内核的一些定义,由芯片内核设计公司即ARM提供而外设头文件是芯片外设设计公司即ST提供。内核相比外设处于更为基础的层级所以,在内核中不可能调用外设头文件反过来倒有可能。

system_stm32f10x.h里面也空空荡荡只定义了两个外部函数:

实际上它是system_stm32f10x.c 的头文件,后者主要定义了系统时钟频率低速总线频率、高速总线频率。

Stdint.h是一个标准C文件库里面做了一些有关数据长度的定义,和外设也没有关系

最后发现,原来问题出在stm32f10x_conf.h身上它是用户配置文件,里面对所有本工程需要的外设头文件做了包含默认情况下会包含所有外设的头文件,用户应该根据工程要求注释掉一些用不到嘚头文件的包含这样一来可以是文件结构更加精炼,便于理解

实际上,stm32f10x.h 除了包含以上4个文件外只完成了3个任务:

1.对所有外设地址的萣义

3.基本数据结构的定义

这样一来,其实我们对STM32固件库的了解也更进了一步为我们更进一步学习用固件库编程打好了基础。

加载中请稍候......

}

最近接触STM32F10x有时只想实现一些小功能,实在不想用冗大的官方固件库

于是除了MDK提供的STM32F10x.s外,其余源文件都自己写但MDK提供的启动文件

(我的芯片是stm32f107vct6)加了进来,不过链接报錯!出错信息如下:

百度搜到了如下的解决办法,以记之

startup_stm32f10x_md.o这个文件里面被提及的,这个.o文件在工程里面并没有它是一个在编译的时候根据.c/.s文件生成的。所以我们只需要找到工程里面的.s或者.c即可这里对应这个名字的就是startup_stm32f10x_md.s了。

}

我要回帖

更多关于 mate20x出厂固件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信