新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > STM32F10X系列微控制器标准外设库的应用

STM32F10X系列微控制器标准外设库的应用

作者:时间:2012-08-08来源:网络收藏

Stm32f10x系列具有3内核结构,它集成了CM3core的中心处理器内核和先进的系统外设,实现了内置的中断控制、存储器保护,以及系统的调试和跟踪功能。在进行嵌入式系统设计时,控制软件首先需要对的启动、系统时钟、存储器映射、中断向量、异常处理等进行设置,增加了控制软件的前期开发时间,更加造成了初学者的难度。为了缩短开发时间、提高软件的可移植性,同时降低开发成本,ST公司提供了标准外设驱动库,该库集成了文件及所有外设驱动函数,由于屏蔽了不同型号微控制器之间的差异,用户文件仅需调用相应的库函数便可完成系统配置,简化了开发流程,降低了开发难度。

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

c.JPG


CMSIS的文件结构如图1所示(以Codex-M3为例),其中stdint.h包括对8位、16位、32位等类型指示符的定义,主要用来屏蔽不同编译器之前的差异。core_cm3.h和core_cm3.c中包括Cortex_M3核的全局变量声明和定义,并定义一些静态功能函数。system_stm32.h和system_ stm 32.c是不同芯片厂商定义的系统初始化函数SystemInit(),以及一些指示时钟的变量。Stm32f10x.h是提供给应用程序的头文件,包含core _cm3.h和system_stm32.h,定义了与特定芯片厂商相关的寄存器以及各中断异常号,并可定制M3核中的特殊设备,如MCU、中断优先级位数以及SysTick时钟配置。虽然CMSIS提供的文件很多,但在应用程序中只需包含h头文件。

2 标准简介
ST官方提供的标准文件包括标准文件、标准外设驱动例程、各种开发环境下的模板示例、评估板专用驱动等几部分,其中,CMSIS和STM32F10x_StdPeriph_Driver是最重要的部分。STM32F10x_StdPeriph_Driver则包括了微控制器所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的函数调用接口。Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,其中很多驱动函数同样可以作为学习的重要参考。

a.JPG


标准外设库文件之间的关系如图2所示,每一个标准外设驱动包括源文件stm32f10x_PPP.C和头文件stm32f10x_ppp.h两个文件(PPP表示外设,如GPIO、EXTI、I2C等),源文件中包含了相应外设的所有驱动函数,在misc.c文件中定义了CMSIS功能的一些附加函数,如对NVIC的配置等。STM32f10x.h为CMSIS Codex-M3设备外设访问层头文件,包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射,以及是否使用标准外设库设置等。System_stm32f10x.C为CMSIS 3设备外设访问层系统文件,完成系统初始化及时钟配置。Stm32f10x_conf.h为标准外设驱动配置文件,通过更改包含的外设头文件来选择所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。Stm32f10x_it.c为外设中断函数文件,通过在相应位置加入中断程序代码执行相应中断操作,在实际应用中,中断函数也可以设置在项目主程序文件中,但中断函数名必须正确。

3 基于标准外设库的实现步骤
在IAR FOR ARM6.30编程环境下,采用V3.50的标准外设库,开发步骤如下:
1)首先创建一能够象征项目含义的文件夹(如touch),并在该文件夹下创建名为EVARM和Library的文件夹;
2)STM32F10x_StdPeriph_Lib_V3.5.0中STM32F10x_StdPeriph_Driver和CMSIS文件夹拷贝到touch目录下;
3)将\STM32F10x_StdPeriph_Lib_V350\Project\STM32F10x_StdPeriph_Template下的main.c、stm32f10x_confh、stm32f10x_it.c、stm32f10x_it.h拷贝到touch目录下;
4)将\STM32F10x_StdPeriph_Lib_V350\Project\STM32F10x_StdPeriph_Template\EWARM下的stm32f10x_flashcfstm32f10x_flash_ex tsram.icf、stm32f10x_nor.icf、stm32f10x_ram.icf拷贝至/touch/EVARM;
5)打开IAR Embedded Workbench IDE,创建一个新的workspace,而后按照模板创建一个新空白项目;
6)为项目添加工作组CMSIS、StdPeriph_Driver、EVARM、User、Doc,如图3所示;


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭