再造STM32---第七部分:初识 STM32 固件库

本文介绍了STM32固件库的结构,重点讨论了CMSIS标准的作用,它是为了解决不同芯片厂商生产的Cortex微控制器软件的兼容性问题。CMSIS包括内核函数层和设备外设访问层,提供了硬件抽象层。STM32的标准库按照CMSIS建立,包含驱动库源代码、启动文件和帮助文档。文章还详细解析了库文件的目录结构,如Libraries、Project、Utilities等,以及如何使用库帮助文档来理解库函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       本章参考资料:《STM32F4xx 参考手册》、《STM32F4xx 规格书》、《Cortex-M3 权威指南》 , STM32 标准库帮助文档:《stm32f4xx_dsp_stdperiph_lib_um.chm》。在上一章中,我们构建了几个控制 GPIO 外设的函数,算是实现了函数库的雏形,但GPIO 还有很多功能函数我们没有实现,而且 STM32 芯片不仅仅只有 GPIO 这一个外设。
       如果我们想要亲自完成这个函数库,工作量是非常巨大的。 ST 公司提供的标准软件库包含了 STM32 芯片所有寄存器的控制操作,我们直接学习如何使用 ST 标准库,会极大地方便控制 STM32 芯片。


7.1 CMSIS 标准及库层次关系:

       因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的 Cortex 微控制器软件 的兼容性问题, ARM 与芯片厂商建立了 CMSIS 标准(Cortex MicroController Software Interface Standard)。
       所谓 CMSIS 标准,实际是新建了一个软件抽象层。见图 7-1。

CMSIS 标准中最主要的为 CMSIS 核心层,它包括了:
内核函数层:其中包含用于访问内核寄存器的名称、地址定义,主要由 ARM 公司提供。
设备外设访问层提供了片上的核外外设的地址和中断定义,主要由芯片生产商提供。可见 CMSIS 层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异, 这对软件的移植是有极大的好处的。 STM32 的库,就是按照 CMSIS 标准建立的。


7.1.1 库目录、文件简介:


STM32 标准库可以从官网获得,也可以直接从本书的配套资料得到。本书讲解的例程全部采用 1.5.1 库文件。 以下内容请大家打开 STM32 标准库文件配合阅读。

解压库文件后进入其目录:
“STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\”
软件库各文件夹的内容说明见图 7-2。

Libraries: 文件夹下是驱动库的源代码及启动文件
Project : 文件夹下是用驱动库写的例子和工程模板
Utilities:包含了基于 ST 官方实验板的例程,以及第三方软件库,如 emwin 图形软件库、 fatfs 文件系统。
MCD-ST Liberty…库文件的 License 说明
Release_Note.html::库的版本更新说明
stm32f4xx_dsp_stdperiph…库帮助文档,这是一个已经编译好的 HTML 文件,主要讲述如何使用驱动库来编写自己的应用程序。说得形象一点,这个 HTML 就是告诉我们: ST 公司已经为你写好了每个外设的驱动了,想知道如何运用这些例子就来向我求救吧。不幸的是,这个帮助文档是英文的,这对很多英文不好的朋友来说是一个很大的障碍。但这里要告诉大家,英文仅仅是一种工具,绝对不能让它成为我们学习的障碍。其实这些英文还是很简单的,我们需要的是拿下它的勇气。
       在使用库开发时,我们需要把 libraries 目录下的库函数文件添加到工程中,并查阅库帮助文档来了解 ST 提供的库函数,这个文档说明了每一个库函数的使用方法。
       进入 Libraries 文件夹看到,关于内核与外设的库文件分别存放在 CMSIS 和STM32F4xx_StdPeriph_Driver 文件夹中。
       先看看 CMSIS 文件夹。
       STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\文件夹下内容见图7-3。

其中 Device 与 Include 中的文件是我们使用得最多的,先讲解这两个文件夹中的内容。
1. Include 文件夹:
        在 Include 文件夹中包含了 的是位于 CMSIS 标准的核内设备函数层的 Cortex-M 核通用的头文件,它们的作用是为那些采用 Cortex-M 核设计 SOC 的芯片商设计的芯片外设提供一个进入内核的接口,定义了一些内核相关的寄存器(类似我们前面写的 stm3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值