STM 32F10X系列微控制器标准外设库的应用
2012-03-17杨凤彪
杨凤彪,刘 云
(1.军械工程学院 电气工程系,河北 石家庄 050003;
2.河北普兴电子科技有限责任公司 综合管理部,河北 石家庄 050200)
Stm32f10x系列微控制器具有Cortex-M3内核结构,它集成了CM3core的中心处理器内核和先进的系统外设,实现了内置的中断控制、存储器保护,以及系统的调试和跟踪功能[1]。在进行嵌入式系统设计时,控制软件首先需要对微控制器的启动、系统时钟、存储器映射、中断向量、异常处理等进行设置,增加了控制软件的前期开发时间,更加造成了初学者的难度。为了缩短开发时间、提高软件的可移植性,同时降低开发成本,ST公司提供了标准外设驱动库,该库集成了CMSIS文件及微控制器所有外设驱动函数,由于屏蔽了不同型号微控制器之间的差异,用户文件仅需调用相应的库函数便可完成系统配置,简化了开发流程,降低了开发难度。中stdint.h包括对8位、16位、32位等类型指示符的定义,主要用来屏蔽不同编译器之前的差异。core_cm3.h和core_cm3.c中包括Cortex_M3核的全局变量声明和定义,并定义一些静态功能函数。system_stm32.h和 system_stm32.c是不同芯片厂商定义的系统初始化函数System Init(),以及一些指示时钟的变量。Stm32f10x.h是提供给应用程序的头文件,包含core_cm3.h和 system_stm32.h,定义了与特定芯片厂商相关的寄存器以及各中断异常号,并可定制M3核中的特殊设备,如MCU、中断优先级位数以及SysTick时钟配置。虽然CMSIS提供的文件很多,但在应用程序中只需包含h头文件[3]。
1 CMSIS文件结构

图1 CMISIS文件结构Fig.1 File structure of CMSIS
CMSIS为Cortex微控制器软件接口标准,提供了独立于Cortex-M处理器的外设、实时操作系统、中间组件的通用接口方法,解决了软件组件应用于不同Cortex核微控制器时所带来的难题,简化了软件复用,降低了Cortex-M上操作系统的移植难度[2]。……
