嵌入式-stm32固件库ppt课件_第1页
嵌入式-stm32固件库ppt课件_第2页
嵌入式-stm32固件库ppt课件_第3页
嵌入式-stm32固件库ppt课件_第4页
嵌入式-stm32固件库ppt课件_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STM32固件库简介,报告人:徐倩 康利利 学号:2014552007 2014552012,1. STM32标准外设库概述 2. STM32 固件库与 CMSIS 标准 3.STM32固件库包结构 4.STM32使用步骤简介,目录,本质:一个固件函数包 组成:程序、数据结构和宏,包括了微控制器所有外设的性能特征。还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的

2、结构,函数和参数名称都进行了标准化。 优点:a、通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设; b、使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。 ST公司2007年10月发布了V1.0版本的固件库,MDK ARM3.22之前的版本均支持该库。2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件库。V3.0以后的版本相对之前的版本改动较大,本书使用目前较新的V3.4版本,1. STM32标准外设库概述,其实一句话就可以概括: 固件库就是函数的集合; 固件库函数的作用是: 向下负责与

3、寄存器直接打交道,向上提供用户函数调用的接口( API,STM32 固件库到底是什么,和寄存器开发有什么关系,但是固件库不是万能的,您如果想要把 STM32 学透,光读 STM32 固件库是远远不够的。你还是要了解一下 STM32 的原理,而这些原理了解了,你在进行固件库开发过程中才可能得心应手游刃有余。 E.g,2. STM32 固件库与 CMSIS 标准,3) 外设访问函数:该层也由芯片厂商负责实现,主要是提供访问片上外设的访问函数,这一部分是可选的,1) 核内外设访问层:该层由ARM 负责实现。包括对寄存器名称、地址的定义,对核寄存器、NVIC、调试子系统的访问接口定义以及对特殊用途寄存

4、器的访问接口定义。该层定义的接口函数均是可重入的,2) 片上外设访问层:负责对硬件寄存器地址以及外设访问接口进行定义。该层可调用CPAL 层提供的接口函数同时根据设备特性对异常向量表进行扩展,以处理相应外设的中断请求,CMSIS 通过以上三个部分实现了: 定义访问外设寄存器和异常向量的通用方法; 定义核内外设的寄存器名称和核异常向量的名称; 为RTOS 核定义与设备独立的接口,包括Debug 通道。 我们在使用 STM32 芯片的时候首先要进行系统初始化, CMSIS 规范就规定,系统初始化函数名字必须为SystemInit,所以各个芯片公司写自己的库函数的时候就必须用SystemInit 对

5、系统进行初始化。 CMSIS 还对各个外设驱动文件的文件名字规范化,以及函数名字规范化等等一系列规定,3.STM32固件库包结构,4.STM32使用步骤简介,首先新建一个项目并设置工具链对应的启动文件,可以使用标准外设库中提供的模板,也可以自己根据自己的需求新建。标准外设库中已经提供了不同工具链对应的文件,位于STM32F10 x_StdPeriph_Lib_V3.4.0LibrariesCMSISCM3DeviceSupportSTSTM32F10 xstartup目录下。 其次按照使用产品的具体型号选择具体的启动文件,加入工程。文件主要按照使用产品的容量进行区分,根据产品容量进行选择即可。

6、每个文件的具体含义可以在“stm32f10 x.h”文件中找到对应的说明 “stm32f10 x.h”是整个标准外设库的入口文件,这个文件包含了STM32F10 x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等。为了是这个文件适用于不同系列的产品,程序中是通过宏定义来实现不同产品的匹配的 #if !defined (STM32F10X_LD) & !defined (STM32F10X_LD_VL) & !defined (STM32F10X_MD) & !defined (STM32F10X_MD_VL) & !defined (STM32F10

7、X_HD) & !defined (STM32F10X_HD_VL) & !defined (STM32F10X_XL) & !defined (STM32F10X_CL) /* #define STM32F10X_LD */ /*! STM32F10X_LD: STM32 Low density devices *,如果去掉/*#define USE_STDPERIPH_DRIVER*/的注释,则是使用标准外设库进行开发,用户需要使用在文件“stm32f10 x_conf.h”中,选择要用的外设,外设同样是通过注释/去掉注释的方式来选择。 /* Uncomment the line below to enable peripheral header file inclusion */ #include stm32f10 x_adc.h /* #include stm32f10 x_bkp.h */ /* #include stm32f10 x_can.h */ 系统时钟在“system_stm32f10 x.c”同样通过注释的方式来配置,已经配置了系统的主要外部参数,这些参数主要是通过更改相关的宏定义来实现的,有些开发环境,例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论