STM32官方固件库V1.4版本介绍

时间:2024-04-10 20:57:24

本文主讲ST官方提供的STM32F4固件库V1.4版本的结构
如需要V1.4版本固件库,可在博主的资源中下载(如果您没有积分购买,请私信我)
本文总结于:北京航空大学出版社 精通STM32F4库函数版

主要内容:
一.文件夹介绍
1.1 Libraries文件夹
1.2 Project文件夹
1.3 Utlities文件夹

二.关键文件介绍
2.1 core_cm4.h文件
2.2 stm32f4xx.h和system_stm32f4xx.h文件
2.3 stm32f4xx_it.c、stm32f4xx_it.h以及 stm32f4xx_conf.h文件
2.4 misc.c、misc.h、stm32f4xx_ppp.c、stm32f4xx_ppp.h、stm32f4xx_rcc.c和 stm32f4xx_rcc.h文件
2.5 Application文件
2.6 启动文件

一.文件夹介绍

1.1 Libraries文件夹

1.Libraries文件夹下有CMSIS和STM32F4xx_StdPeriph_Driver两个目录,包含固件库核心的所有子文件和文件。
STM32官方固件库V1.4版本介绍
STM32官方固件库V1.4版本介绍
CMSIS文件夹存放的是符合CMSIS规范的一些文件,包括STM32F4核内外设访问层代码、DSP软件库、RTOS API以及STM32F4片上外设访问层代码等。
注:新建工程时会从这个文件夹复制一些文件到工程中

STM32F4xx_Stdperiph_Driver文件夹存放的时STM32F4标准外设固件库源码文件和对应的头文件。其内又分inc和src文件
STM32官方固件库V1.4版本介绍STM32官方固件库V1.4版本介绍
inc文件夹存放的是stm32f4xx_ppp.h头文件,无需改动。
src文件夹下存放的是stm32f4xx_ppp.c格式的固件库源码文件。每一个.c文件都对应一个.h文件,这里的文件也是固件库外设的关键文件,每个外设对应一组文件。
注:Libraries文件夹里面的文件在我们建立工程的时候都会用到

1.2 Project文件夹

Project文件夹里面的文件下面有两个文件夹
STM32官方固件库V1.4版本介绍
STM32官方固件库V1.4版本介绍
顾名思义STM32F4xx_Stdperiph_Examples文件夹下存放的是ST官方提供的固件实例源码,在开发过程中可以参考修改这个官方提供的实例来快速驱动自己的外设,很多开发板的实例都参考了这个官方提供的历程源码,这些源码对以后学习非常重要。
STM32F4xx_Stdperiph_Templates文件夹下存放的是工程模板

1.3 Utlities文件夹

Utlities文件下存放的是官方评估板的一些对应源码,可以忽略不看,学习过程中较少接触。
STM32官方固件库V1.4版本介绍

根目录中还有两个文档,只可惜是英文的,如果看得懂的话会非常有用,工程师们在开发过程中会经常用到。
STM32官方固件库V1.4版本介绍

二.关键文件介绍

2.1 core_cm4.h文件

core_cm4.h位于STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries
CMSIS\Include文件夹下,是CMSIS核心文件,提供进入Cortex-M4
内核接口。所有Cortex-M4内核芯片通用,永远不需要修改.

2.2 stm32f4xx.h和system_stm32f4xx.h文件

stm32f4xx.h和system_stm32f4xx.h文件存放在STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries
CMSIS\Device\ST\STM32F4xx\Include文件夹下
STM32官方固件库V1.4版本介绍
stm32f4xx.h文件是片上外设访问层头文件。这个文件相当重要,只要做STM32F4开发,几乎时刻都要查看这个文件相关的定义,打开可以看到俩面有非常之多的结构体和宏定义。里面主要是系统寄存器定义申明以及包装内存操作,同时该文件还包含了一些时钟相关的定义、FPU和MPU单元开启定义、中断相关定义等
stm32f4xx.h文件

system_stm32f4xx.h文件是片上外设接入层系统头文件,主要是申明设置系统及总线时钟相关的函数,这里面有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟。

2.3 stm32f4xx_it.c、stm32f4xx_it.h以及 stm32f4xx_conf.h文件

stm32f4xx_it.c、stm32f4xx_it.h以及stm32f4xx
_conf.h文件可以从STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_Stdperiph_Templates文件夹中找到,新建工程时会用到。
STM32官方固件库V1.4版本介绍
stm32f4xx_it.c、stm32f4xx_it.h时用来编写中断服务函数,中断服务函数也可以随意编写在任意一个文件中。
stm32f4xx_conf.h时外设驱动配置文件,打开可以看到很多#include,这里用于建设工程时可以注释掉不用的外设头文件

2.4 misc.c、misc.h、stm32f4xx_ppp.c、stm32f4xx_ppp.h、stm32f4xx_rcc.c和stm32f4xx_rcc.h文件

misc.c、misc.h、stm32f4xx_ppp.c、stm32f4xx_ppp.h、stm32f4xx_rcc.c和stm32f4xx_rcc.h文件存放在Libraries\STM32F4xx_StdPeriph_Driver的两个文件夹下,这些文件时标准的外设库文件。
misc.c和misc.h是定义中断优先级分组以及Systick定时器相关的函数。
stm32f4xx_ppp.c、stm32f4xx_ppp.h是stm32F4标准外设固件库对应的源文件和头文件,包括一些常用外设GPIO、ADC、USART等
stm32f4xx_rcc.c和stm32f4xx_rcc.h时与RCC相关的一些操作函数,作用主要是一些时钟的配置和性能,在任何一个STM32工程,RCC相关的源文件和头文件都是必须添加的。

2.5 Application文件

文件Application实际就是应用层代码,这个文件名可任意取,工程直接取名为main.c

2.6 启动文件

最后,一个完整的STM32F4工程除了以上所述文件,还需要关键的启动文件,不同的STM32F4对应的启动文件是不一样的,博主学习选择的开发板是STM32F407系列,所以选择的启动文件为startup_stm32f40_41xxx.s,启动文件的非常重要的一个作用就是系统复位后引导进入main函数,同时回调用SystemInit系统初始化函数。