使用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固件库的了解也更进了一步为我们更进一步学习用固件库编程打好了基础。
加载中请稍候......
}