1. 简介
1.1 组成
STM32的组成:
- ST指制造商STMicroelectronics的缩写
- M指处理器系列ARM Cortex-M
- 32指处理器是32位的
1.2 内核与系列
STM32开发板的内核:ARM Cortex-M3
STM32开发的系列:STM32-F1
1.3 STMf103ZET6单片机的全称含义
- STM32: ARM架构的32位处理器
- F : 通用类型
- 103 : 增强型
- Z: 144引脚
- E: 512K闪存(内存)
- T: 封装 LQFP
- 6: 工业温度范围: -40度~85度
1.4 STM32的最小系统
最小系统的概念:最小电路组成的系统
最小系统由五部分组成:
- 电源电路
- 时钟电路
- boot电路
- 下载/调试接口
- CH340接口,为T口转USB
- JTAG/SWD 仿真烧写
- 复位电路
1.5 STM32编程方法
配置MCU中的某个功能模块的寄存器,进行操作
使用ST官方提供的固件库驱动操作,ST官方提供了STM32CubeMX软件,图形化配置开发软件
2. 固件库
2.1 Standard Peripheral Library (SPL)
这是 ST Microelectronics 最初为其 STM32 微控制器系列发布的固件库
此库包含了一些方便的 C 函数,可以直接控制 STM32 的各种外设,通常称为标准库
2.2 STM32Cube
STM32Cube: ST Microelectronics 自 2015 年以来开始推广的一种新的固件库
STM32Cube 包括一个嵌入式软件平台和一个独立的集成开发环境。嵌入式软件平台包括一个硬件抽象层(HAL),该层为 STM32 的各种外设提供通用的 API,并且还包含一些中间件组件(如FreeRTOS,USB库,TCP/IP 库等)
STM32Cube 的集成开发环境(STM32CubeIDE)则包含了代码生成器,它可以生成基于STM32Cube HAL 的初始化代码
2.3 LL(Low Layer)Drivers
LL 库是 STM32Cube 库的一部分,为高级用户提供了一个硬件抽象层的替代方案
LL 库提供了一组低级 API,可以让用户直接访问 STM32 外设的寄存器
这些 API 比 HAL 更加高效,但是需要更深入的硬件知识
2.4 CMSIS(Cortex Microcontroller Software Interface Standard)
CMSIS并不是一个 STM32 特定的固件库,而是 ARM 公司为 Cortex-M 微控制器定义的一组接口
许多 STM32 固件库(包括 SPL 和 STM32Cube)都使用 CMSIS 作为底层的硬件抽象
2.5 关于固件库的特点
- 主要由功能接口、数据结构、宏等组成,涵盖了微控制器所有外设的性能特征
- 包括每一个外设驱动描述和应用实例
- 为开发者访问底层硬件提供了统一的 API
- 无需深入掌握底层硬件实现细节
- 大大缩短产品开发周期,进而降低了研发成本
- 容易进行二次开发、升级和维护