STM32F固件库是根据CMSIS(ARM Cortex微控制器软件接口标准)而设计的。CMSIS标准由ARM和芯片生产商共同提出,让不同的芯片公司生产的Cortex M3微控制器能在软件上基本兼容。
STM32F10x的固件库是一个完整的软件(称固件包),包括所有的标准外设的设备驱动程序,其本质是一个固件函数包(库),它由程序、数据结构和各种宏组成,包括了微控制器所有外设的性能特征。
此函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API(APPlication Programming Interface,应用编程接口)。通过使用固件函数库,无须深入掌握底层硬件细节,开发者就可轻松应用每一个外设。每个外设都由一组函数组成,这组函数覆盖了此外设的所有功能 。每个器件的开发都由一个通用API驱动,API对此驱动程序的结构、函数和参数外称都进行了标准化。
STM32F10x标准外设库--目录结构
(1)、LOGO图标;(2)、库函数与启动文件;(3)、驱动示例和工程模板;(4)、ST官方开发板实例;(5)、更新说明;(6)、库使用帮助文件。
主要介绍2、3、4目录:
(2)、Librarier目录
此目录含2个目录(CMSIS、STM32F10x_StdPeriph_Driver),见下图:
一、CMSIS子目录
CMSIS子目录是STM32F10x的内核库目录,核心子目录为CM3,其余目录可忽略。
CM3目录下有2个子目录,如下图:
1)CoreSupport子目录
内有2个重要文件,一个是core_cm3.c(内核通用源文件),另一个是core_cm3.h(内核通用头文件)。上述文件位于CMSIS核心层的核内外设访问层,由ARM公司提供,包含用于访问内核寄存器的名称、地址定义等内容。
2)、DeviceSupport子目录
1)、stm32f10x.h:STM32F10x头文件;
2)、system_stm32f10x.c:系统初始化源文件;
3)、ststem_stm32f10x.h: 系统初始化头文件;
4)、startup:启动文件子目录,内包含4个子目录,其中arm子目录内存的都是根据FLASH容量大小所对应的启动文件(见下图)。
上述文件位于CMSIS核心层的设备外设访问层,由ST公司提供,包含片上核外设寄存器外称、地址定义、中断向量定义等。
二、STM32F10x_StdPeriph_Driver目录
此目录是STM32F10x标准外设驱动库函数目录,包括了所有STM32F10x微控制器的外设驱动,如GPIO、TIMER、SysTick、ADC、DMA、USART、SPI、I2C等。
内有2个子目录(inc、src)见下图:
1)、inc子目录: include的缩写,存放的是每个外设库函数的头文件。
2)、src子目录:source的缩写,存放的是每个外设库函数的源文件。
(3)、Project目录
此目录对应标准外设库体系架构的用户层,存放ST公司官方提供的STM32F10x外设驱动示例(STM32F10x_StdPeriph_Example)和工程模板(STM32F10x_StdPeriph_Template)。
内有2个目录,见下图
1)、STM32F10x_StdPeriph_Example子目录
2)、 STM32F10x_StdPeriph_Template子目录
上图5个子目录是开发工具,每个目录下存放的STM32F10x的工程文件。
用户相关应用文件5个(main.c、stm32f10x.conf.h、stm32f10x_it.c、stm32f10x_it.h、system_stm32f10x.c),无论是哪种开发工具构建的STM32F10x工程,用户的具体应用都只与这5个文件有关。这样,在同一型号的微控制器上开发不同应用时,不须修改相关开发工具目录下的工程文件,只需要用新写的应用程序文件替换这5个文件即可。
(4)、Utilities子目录
此目录存放ST公司官方评估板的BSB(Board Support Package,板级支持包)和第三方固件