《野火STM32F407 霸天虎版》学习笔记——第10章 初识STM32固件库


前言

博主在自学嵌入式开发工程师的学习道路上,先是学完了C语言和51单片机,现在马不停蹄地开始了学习STM32的过程。入手的STM32单片机是STM32F407这款芯片,这是一个资深的嵌入式开发工程师推荐的芯片,并且学习了野火的相关教程。一开始凭着51的基础,博主感觉STM32还比较上手,但到了固件库编程方面,便学起来有些吃力,于是从本章开始,博主将会对在STM32学习过程中比较吃力的点做一个记录。

我们所提到的固件库即为ST 公司提供的标准软件库,包含了 STM32 芯片所有寄存器的控制操作,我们可以通过直接学习如何使用 ST 标准库,即固件库,会极大地方便控制 STM32 芯片。接下来
我们简单的分析下 ST 官方的固件库的组成部分。


一、CMSIS 标准及库层次关系

1.CMSIS标准

STM32F407是一款基于Cotex系列的芯片,Cotex系列的芯片所采用的内核是相同的,区别主要是在核外的片上外设的差异。这些差异导致不同外设间的芯片移植起来十分困难。为了解决不同的芯片厂商生产的Cotex微控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS标准。

CMSIS架构如下:
在这里插入图片描述
CMSIS标准中最主要的是CMSIS核心层,它包括了:
·内核函数层:其中包含了用于访问内核寄存器的名称、地址定义。
·设备外设访问层:提供了片上的核外外设的地址和中断定义。

可见CMSIS层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异,按照CMSIS标准即可建立起STM32的固件库。

2.重要的库文件

1.core_cm4.c

2.system_stm32f4xx.c 文件
这个文件包含了STM32芯片上后初始化系统时钟、扩展外部存储器的函数。

3.启动文件
“strartup_stm32f40xx.s”即为 STM32F407 芯片的启动文件。

4.stm32f4xx.h 文件
这是一个 STM32 芯片底层相关的文件,包含了STM32中所有的外设寄存器地址和结构体类型定义。

5.STM32F4xx_StdPeriph_Driver 文件夹下有 inc跟 src这两个文件夹当中的文件
src 里面是每个设备外设的驱动源程序,inc 则是相对应的外设头文件。这两个文件夹当中的文件都是ST 公司针对每个 STM32 外设而编写的库函数文件,例如stm32f4xx_gpio.c 及 stm32f4xx_gpio.h 文件针对的就是gpio外设。这两个文件夹中,还有一个很特别的 misc.c 文件,这个文件提供了外设对内核中的 NVIC(中断向量控制器) 的访问函数,在配置中断时,我们必须把这个文件添加到工程中。

6.stm32f4xx_it.c
这个文件是专门用来编写中断服务函数的,在我们修改前,这个文件已经定义了一些系统异常 (特殊中断) 的接口,其它普通中断服务函数由我们自己添加。

7.stm32f4xx_conf.h
这个配置文件管理inc和src下的所有文件,并被包含在stm32f4xx.h文件当中,可以根据芯片型号增减 ST 库的外设文件。

3.库内各文件之间的关系

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值