莁STM32固件库详解 蚈1.1基于标准外设库的软件开发 肇1.1.1STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据肄结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API(applicationprogramminginterface应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。 ST公司2007年10月发布了V1.0版本的固件库,MDKARM3.22之前的版本均支持该库。2008年衿6月发布了V2.0版的固件库,从2008年9月推出的MDKARM3.23版本至今均使用V2.0版本的固件库。V3.0以后的版本相对之前的版本改动较大,本书使用目前较新的V3.4版本。 蒇1.1.2使用标准外设库开发的优势 膇简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等等的所有标准外设。对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。 膁1.1.3STM32F10XXX标准外设库结构与文件描述 薁1.标准外设库的文件结构 可以从ST的官方网站下载到各种版本的标准外设库,首先看一下3.4版本标准外设库的文件结构,芆如图5-3所示。3.0以上版本的文件结构大致相同,每个版本可能略有调整。 图5-3STM32F10XXXV3.4标准外设库文件结构 芆 表5-4中介绍了每个文件夹所包含的主要内容。 薂 表5-4STM32F10XXXV3.4标准外设库文件夹描述 聿 艿 _htmresc 本文件夹包含了所有的html页面资源 STM32F10x_StdPeriph_Lib_V3.4.0 莆羃 Libraries CMSIS 见表5-6 螁肈蒆 STM32F10x_StdPeriph_Driver inc 标准外设库驱动头文件 莄腿螇 螅薆标准外设库驱动源文src 件 Project Examples 标准外设库驱动的完整例程 袀袀薆 Template MDK-ARM KEILRVMDK的项目模板示例 羁蚂薈 莂蚆RIDE RaisonanceRIDE的 项目模板示例 莇肀EWARM IAREWARM的项目模 板示例 Utilities STM3210-EVAL 本文件夹包含了用于螂螆螃STM3210B-EVAL和STM3210E-EVAL评估板的专用驱动 标准外设库的第一部分是CMSIS和STM32F10x_StdPeriph_Driver,CMSIS是独立于供应商的膆Cortex-M处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。 STM32F10xxx标准外设库体系结构如图5-4所示。图中很好的展示了各层以及具体文件之间的联系,袅各文件的具体功能说明如表5-5所示。 图5-4STM32F10xxx标准外设库体系结构 膄 表5-5文件功能说明 芀 文件名 功能描述 具体功能说明 腿羅芁 羂蚂访问Cortex-M3内核及其设备:NVIC,core_cm3.h 肅SysTick等 Cortex-M3内核 及其设备文件 core_cm3.c 羈蒀访问Cortex-M3的CPU寄存器和内核外设的函数 膅蚇肃这个文件包含了STM32F10x全系列所有微控制器专用头外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等 stm32f10x.h 文件 膂蒄函数SystemInit,用来初始化微控制器 system_stm32f10x.h 膅微控制器专用系 函数Sysem_ExtMemCtl,用来配置外部 统文件 螀蕿system_stm32f10x.c 存储器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳转到
STM32固件库详解



