跳转至

关于一些对比

官方库对比

种类 便携性 优化 简单程度 可读性 硬件覆盖范围
STM32Snippets +++ +
Standard Peripheral Library ++ ++ + ++ +++
Cube/HAL +++ + ++ +++ +++
Cube/LL + +++ + ++ ++

详细介绍如下:

STM32Snippets

该库只提供F0L0系列,是直接基于外设寄存器的一个库,因为需要直接操作外设寄存器,处于最底层

缺点: 1. 对使用者要求较高,需要对汇编语言和芯片结构比较了解的人员使用 2. 该库针对具体芯片使用,没有可移植性

优点: 1. 程序运行速度快 2. 整体代码长度小

Standard Peripheral Library(SPL)

SPL是ST公司推出的标准外设库,其本质就是在寄存器的基础上进行了一次简单得到封装

缺点: 1. 只支持ST公司的部分产品 2. 标准库是针对某一系列型号,不同系列之间移植非常困难

优点: 1. 使用C语言,比之间操作寄存器方便 2. 运行速度快 3. 目前实际使用中占大多数

Cube

Cube是目前ST公司主推的软件开发系列,包含HAL库和LL库,并开发了STM32CubeMX作为配套的配置软件

HAL库

硬件抽象层,可以更好的进行设备之间的代码移植,对底层驱动进行完全的封装,提供统一的API接口

缺点: 1. 代码数量庞大,运行相对较慢

优点: 1. 使用简单,易上手 2. 有专门的软件进行辅助使用 3. 整体代码非常结构化,并有大量注释

LL库

底层库,是针对HAL库代码量大,运行速度慢,以及一些功能被HAL库调用

缺点: 1. 暂时未使用,无法评价

优点: 1. 暂时未使用,无法评价

器件支持

种类 STM32Snippets Standard Peripheral Library Cube/HAL Cube/LL
C0 + +
F0 + + + +
F1 + + +
F2 + + +
F3 +1 + +
F4 + + +
F7 + +
G0 + +
G4 + +
H5 + +
H7 + +
L0 + + +
L1 + + +
L4 + +
L5 + +
MP1 + +
U5 + +
WB + +
WBA + +
WL + +

1: F3系类仅支持:`STM32F301x/302x/303x/334x/`以及`STM32F37x/38x`

器件对比