SPI
2025-10-09 00:08:00
SPI
SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总线协议,最初由Motorola在2000年提出,Motorola所定义的SPI标准为业界广泛引用,但不同半导体公司的实施细节可能有所不同,这些区别体现在寄存器设置、信号定义、数据格式等。
特点
- 一主多从:主机可以与多个从机通信,通过片选信号NSS选择通信对象。
- 高速全双工:具有单独的收发数据线,可以同时接收和发送数据,速度可达几十Mbps
- 同步通信:拥有时钟线,通过时钟线来控制读取数据时机。
接线
- SCLK:时钟线
- MISO(Master input slave output):主机接收数据,从机发送数据线
- MOSI(Master output slave input):主机发送数据,从机接收数据线
- NSS(Slave select):片选信号,拉低有效
可能有其他名称
- MOSI也可以是SOMI,DIN,DI,SDI或SI(在主机端);
- MISO也可以是SIMO,DOUT,DO,SDO或SO(在主机端);
- NSS也可以是CE,CS或SSEL;
- SCLK也可以是SCK;
时序

CPOL的值指定了时钟脉冲空闲时默认状态是高还是低(0低1高)
CPHA的值指定了在第一个还是第二个时钟信号跳变沿开始采集数据(0第一个1第二个)
由此产生了四种模式
| SPI Mode | CPOL | CPHA |
|---|---|---|
| 0 [00] | 0 | 0 |
| 1 [01] | 0 | 1 |
| 2 [10] | 1 | 0 |
| 4 [11] | 1 | 1 |

数据收发


Stm32CubeMX配置
