1. 固件库的介绍
固件库又称固件函数库,是⼀个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每⼀个外设的驱动描述和应⽤实例,为开发者访问底层硬件提供了⼀个中间API,通过使⽤固件函数库,⽆需深⼊掌握底层硬件细节,开发者就可以轻松应⽤每⼀个外设。因此,使⽤固态函数库可以⼤⼤减少⽤户的程序编写时间,进⽽降低开发成本。每个外设驱动都由⼀组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由⼀个通⽤API (application programming interface 应⽤编程界⾯)驱动,API对该驱动程序的结构,函数和参数名称都进⾏了标准化
2. 固件库的获取
如果是STM的标准库,可以在它官网下载
https://www.st.com/content/st_com/zh.html
点击链接进入官网,在产品栏选择微控制器
进入之后,选择对应的型号
这里的邮箱需要填写对
然后进入邮箱,点击
其余厂家的,可以找相关厂家FAE要,或者网上(论坛或者下载网站)搜索下载
3. 固件库的目录介绍
文件名 | 说明 |
---|---|
_htmresc | ST公司logo,我们不需要 |
Libraries | 里面包含各种我们需要的资源,这个是我们需要的 |
Project | 里面有工程示例,我们可以参考 |
Utilities | 里面有ST公司自己的开发板的相关示例代码,我们不需要 |
Release_Notes.html | 介绍ST公司 以及 一些求助方式,我们不需要 |
Package_license.xxx | 许可证介绍,我们不需要 |
stm32f10x_stdperiph_lib_um.chm | 固件库函数手册,可以参考查阅 |
4. 固件库的文件分析
CMSIS标准的英文全称是Cortex Microcontroller Software Interface Standard,翻译过来就是ARM Cortex微控制器软件接口标准。因为基于Cortex内核的芯片生产厂商有很多,不只是ST公司。为了解决不同厂家生产的Crotex芯片软件兼容问题,ARM公司和其他芯片厂商制定了这个CMSIS标准。
core_cm3.c | core_cm3.h
属于CMSIS的核心文件,由ARM提供,对于所有M3内核的芯片来说这个文件都是相同的,不需要我们修改
startup_stm32f10x_xxxd.s
属于编译器启动文件,创建工程模板时,要将STM32的启动文件添加进来,否则系统不能启动
文件 | 备注 |
---|---|
startup_stm32f10x_ld.s | STM32小容量产品启动文件 FALSH<=32K |
startup_stm32f10x_md.s | STM32中容量产品启动文件 64K<=FLASH<=128K |
startup_stm32f10x_hd.s | STM32大容量产品启动文件 256K<=FLASH |
stm32f10x.h
属于STM32F10x的头文件,类似于51单片机的reg.51,在开发STM32F10x程序的时候基本上都会调用这个头文件,可见其重要性。此文件内部封装了STM32的总线、内存和外设寄存器等,实现了内核之外的外设寄存器映射,同时该文件还包含了一些时钟相关的定义和中断相关定义等
system_stm32f10x.h
申明设置系统及总线时钟相关的函数
system_stm32f10x.c
这个文件里面有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟
misc.h | misc.c
代替原来的stm32f10x_nvic.c
stm32f10x_xxx.c/h
相关外设驱动功能函数
stm32f10x_it.c | stm32f10x_it.h
用于存放中断函数,不过中断函数也可以放在其他工程文件内,所以这个文件很少操作
用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。
stm32f10x_conf.h
外设驱动配置文件,通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置,这个文件被包含进 stm32f10x.h 文件中。
本来说是写一份详解的介绍,但是在网上查找资料的时候,发现有更详细的文章了,所以这里就不再重复写了,建议大家可以看
https://blog.csdn.net/weixin_46251230/article/details/126464390
5.固件库的使用
上面我们说了固件库有不同平台的工程模板,所以我们可以参考看看
这里点击打开keil工程文件
打开介绍说明,看看如何使用该演示工程模板
点击编译,没有问题后,就可以照葫芦画瓢,参考这工程模板的配置,搭建一个工程就可以了