【ACCESS精品源码栏目提醒】:网学会员鉴于大家对ACCESS精品源码十分关注,论文会员在此为大家搜集整理了“STM32_3.5固件库详解 - 软件工程”一文,供大家参考学习
STM32 固件库详解最近考试较多,教材编写暂停了一下,之前写了很多,只是每一章都感觉不是特别完整,最近把其中的部分内容贴出来一下,欢迎指正。
本文内容基于我对固件库的理解,按照便于理解的顺序进行整理介绍,部分参考了固件库的说明,但是也基本上重新表述并按照我理解的顺序进行重新编写。
我的目的很简单,很多人写教程只是告诉你怎么做,不会告诉你为什么这么做,我就尽量吧前因后果都说清楚,这是我的出发点,水平所限,难免有很大的局限性,具体不足欢迎指正。
1.1 基于标准外设库的软件开发1.1.1 STM32 标准外设库概述STM32 标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。
该函数库还包括每一个外设的驱动描述和应用实例, 为开发者访问底层硬件提供了一个中间 API, 通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。
因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。
每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。
每个器件的开发都由一个通用 API application programminginterface 应用编程界面驱动,API 对该驱动程序的结构,函数和参数名称都进行了标准化。
MDK ARM3.22 之前的版本均支持该库。
ST 公司 2007 年 10 月发布了 V1.0 版本的固件库, 2008年 6 月发布了 V2.0 版的固件库,从 2008 年 9 月推出的 MDK ARM3.23 版本至今均使用 V2.0版本的固件库。
V3.0 以后的版本相对之前的版本改动较大,本书使用目前较新的 V3.4 版本。
1.1.2 使用标准外设库开发的优势简单的说, 使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。
标准外设库覆盖了从 GPIO 到定时器,再到 CAN、I2C、SPI、UART 和 ADC 等等的所有标准外设。
对应的 C 源代码只是用了最基本的 C 编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。
1.1.3 STM32F10XXX 标准外设库结构与文件描述1. 标准外设库的文件结构在上一小节中已经介绍了使用标准外设库的开发的优势, 因此对标准外设库的熟悉程度直接影响到程序的编写,下面让我们来认识一下 STM32F10XXX 的标准外设库。
STM32F10XXX 的标准外设库经历众多的更新目前已经更新到最新的 3.5 版本, 开发环境中自带的标准外设库为 2.0.3 版本,本书中以比较稳定而且较新的 V3.4 版本为基础介绍标准外设库的结构。
可以从 ST 的官方网站下载到各种版本的标准外设库,首先看一下 3.4 版本标准外设库的文件结构,如图 5-3 所示。
3.0 以上版本的文件结构大致相同,每个版本可能略有调整。
图 5-3 STM32F10XXX V3.4 标准外设库文件结构表 5-4 中介绍了每个文件夹所包含的主要内容。
表 5-4 STM32F10XXX V3.4 标准外设库文件夹描述 本文件夹包含了所有的 html 页面资STM32F10x_StdPeriph_Lib_V3.4.0 _htmresc 源Libraries CMSIS 见表 5-6STM32F10x_StdPeriph_Driver inc 标准外设库驱动头文件 标准外设库驱动源文src 件Project Examples 标准外设库驱动的完整例程Template MDK-ARM KEIL RVMDK 的项目模板示例 Raisonance RIDE 的项RIDE 目模板示例EWARM IAR EWARM 的项目模 板示例 本 文 件 夹 包 含 了 用 于Utilities STM3210-EVAL STM3210B-EVAL 和 STM3210E-EVAL 评估板的专用驱动标准外设库的第一部分是 CMSIS 和 STM32F10x_StdPeriph_Driver,CMSIS 是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了 Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。
STM32F10x_StdPeriph_Driver 则包括了分别对应包括了所有外设对应驱动函数,这些