关于一些对比¶
官方库对比¶
| 种类 | 便携性 | 优化 | 简单程度 | 可读性 | 硬件覆盖范围 |
|---|---|---|---|---|---|
| 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`