STM32库函数开发—库文件简介
STM32的3.5版本库
-
core.c/core.h
- 他们的作用是为采用Cortex-M3内核设计的SoC的芯片商设计的芯片的外设提供一个进入CM3内核的 接口,对于其他公司的CM3系列芯片这两个文件相同,我们不用管他是怎么实现的,只需要将这两个文件加入我们的工程文件中即可。 startup_stm32f10x_hd
-
这是系统启动文件,需要注意的是不同的芯片对应不同的启动文件,我们可以根据我们的芯片选择文件。
-
cl:互联型产品,STM32f105/107系列
vl:超值型产品,STM32f100系列
xl:超高密度(容量)产品,STM32f101/103系列
ld:低密度产品,Flash小于64KB
md:中密度产品,Flash等于64KB或128KB
hd:高密度产品,Flash大于128KB
启动文件是任何处理器在上电复位后最先运行的一段汇编程序,所以我们也要将此文件加入到我们的工程文件。他的作用是:
1.初始化堆栈指针SP
2.初始化程序计数器指针PC
3.设置堆、栈的大小
4.设置异常向量表的入口地址
5.配置外部SRAM作为数据存储(用户个人配置)
6.设置C库的分支入口__main(最终用来调用main函数)
7.3.5版本的启动文件还调用了system_stm32f10x.c文件中的SystemInit()函数配置系统时钟,在旧版的工程中用户进入main函数自己调用SystemInit()函数
stm32f10x.h
- 这个文件很重要,是一非常底层的文件,它包含了STM32中寄存器地址和结构体类型定义,在使用固件库的地方都需要包含这个头文件。 system_stm32f10x.h/system_stm32f10x.c
- 设置系统时钟和总线时钟 inc/src
- 这是针对每个STM32外设编写的库函数文件,例如ADC外设,gpio外设等等 stm32f10x_it.c/stm32f10x_it.h
-
stm32f10x_it.c是专门用来编写中断服务函数的,这里已经定义了有些系统异常的接口,其他普通中断服务函数由用户自己添加。中断服务函数接口名可以在启动文件中查找。
stm32f10x_conf.h
-
stm32f10x_conf.h被包含进stm32f10x.h文件,是用来配置使用了什么外设的头文件,用这个头文件我们可以很方便的增加或者删除外设驱动函数库。
上图中被注释掉的部分,表示没有用到,在编译时不会编译这些文件。