1 / 14
文档名称:

stm32固件库详解.docx

格式:docx   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

stm32固件库详解.docx

上传人:phl19870121 2016/4/26 文件大小:0 KB

下载得到文件列表

stm32固件库详解.docx

文档介绍

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