初识STM32库.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初识STM32库

7.1 分析STM32库 在实际开发中 STM32 库,是非常重要的。本章通过简单介绍 STM32 库的各个文件 及其关系,让读者建立 STM32 库的概念,看完后对库有个总体印象即可,在后期实际开发 时接触了具体的库时,再回头看看这一章,相信你对 STM32 库又会有一个更深刻的认识。 7.1.1 STM32库是什么 像大多数的库一样,STM32 的库也是为了方便、化繁为简。我们在学 51 单片机的时候, 常常要查阅寄存器表,看用到哪些配置位,为了配置某功能,该置 1 还是置 0 。相对而言 51 单片机的软件比较简单,资源有限,寄存器的数量比较少,我们可以通过直接配置寄存器的 方式开发。但是在 STM32 资源丰富,寄存器数量较多。如果代码比较庞大,复杂度较高,还 是使用配置寄存器的方式开发的话,是不科学的。 STM32 的库是 ST 公司针对 STM32 封装好一个软件封装库,开发者可调用函数接口 (API,Application Program Interface)来完成相应的开发工作。而配置寄存器的工作由 接口函数自身完成,从而使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读, 维护成本低等优点。 7.1.2 使用库和直接配置寄存器的对比分析 前面有提到使用库开发软件的一个优点是方便。使用直接配置寄存器开发的缺点非常的 突出:开发速度慢,序可读性差。 那么是不是说,使用直接配置寄存器的开发方式,就没有优点呢?使用直接配置寄存器 开发的方式,比较直观,程序运行占用资源少。我们刚学习 STM32 的时候,很多人是通过 学习直接配置寄存器的程序入门的。这个对我们学会查阅 ST 的相关手册,理解 STM32 的 工作原理是非常有帮助的。当然也可以通过库的底层函数,理解这些东西。但是对于初学者 来说,通过库函数,追溯到对应寄存器的配置,稍微复杂了一点。 实际上,库是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配 置,向上为用户提供配置寄存器的接口。库开发方式与直接配置寄存器的方式的区别如下图: 大多数项目产品研发都是用类似库函数的方式进行分解开发的,如果有 1000 个开发人 员来负责开发板 windows 操作系统,那么怎么做?一定是有一群人负责最底层的硬件级, 寄存器的读写封装,包括显示器的点亮,图形刷写;然后另外一群人根据底层这群人提供的 接口,同步做二次开发。库函数的理念完全被广泛应用于各种实际的项目和产品中,因为这 样才可以使得多人协同工作,才能做更大的项目产品。 总而言之,对于大多数人来说,通常使用的是库来开发程序。当然学习直接配置寄存器 的编码方式,对后面学习库函数的编码方式的理解是大有裨益的。 7.2 STM32库结构剖析 7.2.1 CMSIS标准 ST 公司生产的 STM32 采用的是 Cortex-M3 内核。Cortex-M3 内核是ARM 公司设计的 一个处理器体系架构,而非是 ST 公司的。ARM 公司并不生产芯片,而是出售其芯片技术 授权。ST 公司或其它芯片生产厂商如 TI、Keil 、IAR 、Atmel 等,负责设计的是在 Cortex-M 内核之外的部件,被称为核外外设或片上外设、设备外设。如芯片内部的模数转换外设ADC 、 串口 UART 、定时器 TIM 等。这个时候,如果各个公司都有自己的标准,比如各个外设接 口的定义不一样,虽然大家都是使用Cortex-M3 的核,但是在软件移植等方面是非常的麻烦 的。 调查研究表明,软件开发已经被嵌入式行业公认为最主要的开发成本。因此,ARM 与 Atmel、IAR、KEIL、Luminary Micro、Micrium、NXP、SEGGER和 ST 等诸多芯片和软件工具 厂商合作,将所有 Cortex 芯片厂商的产品的软件接口标准化,制定了 CMSIS 标准。此举意 在降低软件开发成本,尤其针对进行新设备项目开发或将已有的软件移植到其他芯片厂商提 供的基于 Cortex 处理器的微控制器的情况。有了该标准,芯片厂商就能够将他们的资源专 注于对其产品的外设特性进行差异化,并且能够消除对微控制器进行编程时需要维持的不同 的、互相不兼容的标准的需求,从而达到降低开发成本的目的。 所谓 CMSIS 标准,实际是新建了一个软件抽象层,基于 CMSIS 标准的软件架构,见下 图: 基于 CMSIS标准的软件架构主要分为以下四层:用户应用层,操作系统层,CMSIS 层以 及硬件寄存

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档