- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式--stm32固件库教程
STM32固件库简介;1. STM32标准外设库概述
2. STM32 固件库与 CMSIS 标准
3.STM32固件库包结构
4.STM32使用步骤简介;本质:一个固件函数包
组成:程序、数据结构和宏,包括了微控制器所有外设的性能特征。还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。
优点: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版本。
;其实一句话就可以概括:
固件库就是函数的集合;
固件库函数的作用是:
向下负责与寄存器直接打交道, 向上提供用户函数调用的接口( API)。;但是固件库不是万能的,您如果想要把 STM32 学透,光读 STM32 固件库是远远不够的。你还是要了解一下 STM32 的原理,而这些原理了解了,你在进行固件库开发过程中才可能得心应手游刃有余。
E.g;2. STM32 固件库与 CMSIS 标准;CMSIS 通过以上三个部分实现了:
定义访问外设寄存器和异常向量的通用方法;
定义核内外设的寄存器名称和核异常向量的名称;
为RTOS 核定义与设备独立的接口,包括Debug 通道。
我们在使用 STM32 芯片的时候首先要进行系统初始化, CMSIS 规范就规定,系统初始化函数名字必须为SystemInit,所以各个芯片公司写自己的库函数的时候就必须用SystemInit 对系统进行初始化。 CMSIS 还对各个外设驱动文件的文件名字规范化,以及函数名字规范化等等一系列规定。;3.STM32固件库包结构;CM3;缩写;首先新建一个项目并设置工具链对应的启动文件,可以使用标准外设库中提供的模板,也可以自己根据自己的需求新建。标准外设库中已经提供了不同工具链对应的文件,位于STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup目录下。
其次按照使用产品的具体型号选择具体的启动文件,加入工程。文件主要按照使用产品的容量进行区分,根据产品容量进行选择即可。每个文件的具体含义可以在“stm32f10x.h”文件中找到对应的说明
“stm32f10x.h”是整个标准外设库的入口文件,这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等。为了是这个文件适用于不同系列的产品,程序中是通过宏定义来实现不同产品的匹配的
#if !defined (STM32F10X_LD) !defined (STM32F10X_LD_VL) !defined (STM32F10X_MD) !defined (STM32F10X_MD_VL) !defined (STM32F10X_HD) !defined (STM32F10X_HD_VL) !defined (STM32F10X_XL) !defined (STM32F10X_CL)
/* #define STM32F10X_LD */ /*! STM32F10X_LD: STM32 Low density devices */
;如果去掉/*#define USE_STDPERIPH_DRIVER*/的注释,则是使用标准外设库进行开发,用户需要使用在文件“stm32f10x_conf.h”中,选择要用的外设,外设同样是通过注释/去掉注释的方式来选择。
/* Uncomment the line below to enable peripheral header file inclusion */
#include stm32f10x_adc.h
/* #include stm32f10x_bkp.h */
/* #include stm32f10x_can.h */
系统时钟在“system_stm32f10x.c”同样通过注释的方式来配置;已经配置了系统的主要外部参数,这
您可能关注的文档
最近下载
- 《基于核心素养的初中语文“活动·探究”单元整体教学设计研究》课题研究方案.doc
- 四年级上册数学第二单元《练习三》教学课件(苏教版).pptx
- (最新)24年秋统编四年级语文上册习作:我的家人(精品课件).pptx
- 货币政策与财政政策配合的中国实践及经验.docx VIP
- 三年高考2024-2025高考地理真题分项汇编地球上的大气含解析.pdf VIP
- 经典诗文诵读技巧.ppt
- 五星级酒店功能区与面积配置(推荐保存).pdf
- 2024年山东省济南市莱芜区中考一模语文试卷(含解析).pdf VIP
- 2023版建筑三类人员a证题库含答案全考点.docx
- (人教版2024)物理八年级上册第二单元 声现象 大单元教学设计.docx
文档评论(0)