STM32 库文件简析

首先讨论一下固件库与寄存器的区别:

  1. 固件库就是函数的集合(API),它把寄存器的操作封装了起来。因为STM32存在很多寄存器,寄存器操作起来很不方便,所以通过API把寄存器的操作封装起来,这样大家直接操作库函数,会很方便。
  2. 但是固件库并不是万能的,要想全面的了解STM32,必须对寄存器有一定的了解,尤其是入门学习的时候。只有对寄存器有了一各大致的了解,才能全面掌握STM32各个功能外设的工作原理,这样才能更好的使用固件库。对于寄存器来说,大家只要大致了解配置过程就好。在使用固件库开发的工程也可以操作寄存器,因为固件库就是把寄存器操作封装起来的API。

接下来对HAL库包进行介绍:
下图就是对HAL各个库文件的描述:
STM32 库文件简析

启动文件的作用就是引导进入systemInit和main函数。
stm32f767xx.h文件是顶层头文件包含了对于外设寄存器的定义。
system_stm32f7xx 文件主要用来存放系统初始化函数systeminit.
stm32f7xx_hal 库文件包含了HAL库通用API,例如HAL_INT,HAL_DeInit 等。
stm32f7xx_hal_ppp 库文件 包含了对应外设的API函数。
对于其他剩余的就不在描述,图中有对应的描述。

然后就是关键文件之间的关系:
STM32 库文件简析

从图中我们可以得知:
sys.h 包含 stm32f7xx.h, stm32f7xx.h 包含stm32f7xx_hal.h
stm32f7xx_hal.h 包含 stm32f7xx_hal_conf.h
stm32f7xx_hal_conf.h 包含 stm32f7xx_hal_ppp.h