ST为用户开发芯片提供了三种库:
- 标准外设库(Standard Peripheral Libraries)
- HAL库(硬件抽象层库:Hardware Abstraction Layer)
- LL库(Low Layer)
STM32Cube固件包文件分析
Drivers文件夹
其中CMSIS文件夹
常用到的是Device 和 Include文件夹
-
Device 文件夹
-
Include 文件夹
Include 文件夹存放了符合 CMSIS 标准的 Cortex-M 内核头文件。想要深入学习内核的朋友可以配合内核相关的手册去学习。对于 STM32F4 的工程,我们只要把我们需要的添加到工程即可,需要的头文件有:cmsis_armcc.h、cmsis_armclang.h、cmsis_compiler.h、cmsis_version.h、core_cm4.h 和 mpu_armv7.h。这几个头文件,对比起来,我们会比较多接触的是 core_cm4.h。core_cm4.h 是内核底层的文件,由 ARM 公司提供,包含一些 AMR 内核指令,如软件复位,开关中断等功能。今后在需要的例程再去讲解其程序,现在之所以提到,是因为它包含了一个重要的头文件 stdint.h。
Middlewares文件夹
HAL库的框架结构
HAL库的文件夹结构及文件介绍
HAL库API函数和变量命名规则
HAL库对寄存器位操作相关宏定义
HAL库回调函数
这部分允许用户重定义,并在其中实现用户自定义的功能。
如何使用HAL库
- 裁剪HAL库外设驱动源码
方法一:在stm32f4xx_hal_conf.h文件中屏蔽宏定义的外设。
方法二:驱动中去掉没有用到的外设.c文件内 - 设置外部高速晶振的频率
- 设置外部低俗晶振的频率