FWLib V2.0.3是一个完整的固件包,它适用于STM32F10xxx小容量,中容量和大容量产品。固件库由程序,数据结构和宏组成,覆盖了所有外设的特征,还包括了全部标准外设的驱动和一系列示例程序。好多视频教程都用到V2.0的固件库,包含:examples、library、project三个文件夹。己解除默认的只读权限,可以直接修改使用.
从V2.0.3版本换到V3.5.0版本的固件库,那么这样的优势是什么?
主要是修改了一些bug,如果你平时没有遇到这些bug可以不急于更换.新版的固件库对于器件的一些新特性做了支持,所以原来的程序可能需要少做修改.
ST改进了STM32F10xxx标准外设库的体系结构并支持CMSIS层。
根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):
● 使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。用户只需要配置文
件”stm32f10x_conf.h”,并使用相应的文件”stm32f10x_ppp.h/.c”即可。
● 不使用外设驱动:这时应用程序开发基于外设的寄存器结构和位定义文件。
标准外设库(StdPeriph_Lib)支持STM32F10xxx系列全部成员:大容量,中容量和小容量产品。
根据使用的STM32产品具体型号,用户可以通过文件”stm32f10x.h”中的预处理define来配置标
准外设库(StdPeriph_Lib),一个define对应一个产品系列。下面列出支持的产品系列
● STM32F10x_LD:STM32小容量产品
● STM32F10x_MD:STM32中容量产品
● STM32F10x_HD:STM32大容量产品
这些define的作用范围是:
● 文件”stm3210f.h”中的中断IRQ定义
● 启动文件中的向量表,小容量,中容量,大容量产品各有一个启动文件
● 外设存储器映像和寄存器物理地址
● 产品设置:外部晶振(HSE)的值等
● 系统配置函数
● 非STM32全系列兼容或不同型号产品间有差异的功能特征
注意: 这些define不会影响外设的驱动,驱动支持STM32全系列全部外设的功能特征。
CMSIS对STM32F10xxx固件库(FWLib)的某些功能采用了不同的实现方法。下面列出主要的区
别:
● 使用标准C类型,文件<stdint.h>
● 对每一个Cortex-M3异常和STM32的IRQ,有:
─ 异常服务程序带后缀_Handler,中断服务程序带后缀_IRQHandler。
─ 弱定义(Weak)的默认异常/中断服务程序,包含一个无限循环
─ 带_IRQn后缀的中断号码“#define”
● 启动文件更名为”startup_stm32f10x_xx.s/.c”,其中xx可以是hd,md或者ld,分别对应大容
量,中容量,小容量产品。
● 只提供精简的NVIC和SysTick函数,其他一些常用函数作为一个新的驱动加入
STM32F10xxx标准外设库,文件命名为misc.h/.c。
● 某些宏的名字与STM32F10xxx固件库V2.0.3中的相同功能宏不同(见表1)
表1 STM32F10xxx固件库V2.0.3与CMSIS宏对比(1)
STM32宏 CMSIS宏 STM32宏 CMSIS宏
1. 加粗的字体表示这些宏有变化。灰色的充填色表示这些改动影响到固件库(FWLib)的驱动或者例程。