第 2 章:同步串行总线——SPI / I²C / I²S


本章目标:

  • 理解三大同步串行总线(SPI、I²C、I²S)的原理与时序差异

  • 掌握常见 STM32 系列微控制器中各总线的寄存器配置与驱动框架

  • 通过实战案例,完成 SPI 驱动 TFT LCD、I²C 驱动温湿度传感器、I²S 驱动音频 Codec

章节结构

  1. 三大总线概览与对比

  2. SPI
     2.1 SPI 原理与时序
     2.2 STM32 SPI 寄存器解析
     2.3 SPI 驱动框架(中断 / DMA)
     2.4 实战案例:SPI + DMA 驱动 TFT LCD

  3. I²C
     3.1 I²C 原理与波特率
     3.2 STM32 I²C 寄存器解析
     3.3 I²C 驱动框架(事件 / 错误中断)
     3.4 实战案例:I²C 驱动 BME280 温湿度传感器

  4. I²S
     4.1 I²S 原理与音频帧格式
     4.2 STM32 I²S 寄存器解析
     4.3 I²S 驱动(DMA + 双缓冲)
     4.4 实战案例:I²S 驱动 WM8994 音频 Codec

  5. 本章小结与选型建议


2.1 三大总线概览与对比

特性 SPI I²C I²S
线数 4(SCLK、MOSI、MISO、SS) 2(SCL、SDA) 3(CK、SD、WS)
拓扑 主从式,多从需片选 多主多从,硬件仲裁 主从式,多从需片选
时钟 主设备输出 主设备输出 主设备输出
同步/异步 同步 同步 同步
速度 高(几十 Mbps) 低(几百 kbps) 中(几 Mbps,用于音频)
典型应用 Flash、LCD、传感器、DAC 传感器、EEPROM、RTC 音频 Codec、DAC、ADC
硬件复杂度 中等,片选多时需多个 SS 简单,地址编码 类似 SPI,但增加 WS(帧同步)

2.2 SPI 原理与时序

2.2.1 SPI 基本工作模式

SPI(Serial Peripheral Interface)由 Motorola 提出,典型信号线:

  • SCLK:时钟,由主机输出

  • MOSI(Master Out Slave In)

  • MISO(Master In Slave Out)

  • SS / CS(Slave Select / Chip Select),低电平选中该从机

四种模式(Mode 0~3)决定时钟极性(CPOL)与相位(CPHA):

Mode | CPOL | CPHA | 描述
-----|------|------|---------------
 0   |  0   |  0   | 上升沿采样,空闲低
 1   |  0   |  1   | 下降沿采样,空闲低
 2   |  1   |  0   | 下降沿采样,空闲高
 3   |  1   |  1   | 上升沿采样,空闲高

时序示意图

CPOL=0, CPHA=0 (Mode 0)
  ___     ___     ___
_|   |___|   |___|   |  SCLK
   ___ ___ ___ ___ 
__|   |   |   |   |__ MOSI (数据在 SCLK 采样沿前稳定)

2.2.2 STM32 SPI 寄存器解析

以 SPI1 为例(基址 0x40013000):

  • SPI_CR1

    • DFF:数据宽度(8/16 bit)

    • CPOL/CPHA:时钟配置

    • BR[2:0]:波特率分频器(fPCLK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

damo王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值