关于一些对比¶
官方库对比¶
种类 | 便携性 | 优化 | 简单程度 | 可读性 | 硬件覆盖范围 |
---|---|---|---|---|---|
STM32Snippets | +++ | + | |||
Standard Peripheral Library | ++ | ++ | + | ++ | +++ |
Cube/HAL | +++ | + | ++ | +++ | +++ |
Cube/LL | + | +++ | + | ++ | ++ |
详细介绍如下:
STM32Snippets¶
该库只提供F0
和L0
系列,是直接基于外设寄存器的一个库,因为需要直接操作外设寄存器,处于最底层
缺点: 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`