1、内部图简明图
SPI 接口一般使用 4 条线通信:
- MISO 主设备数据输入,从设备数据输出。master in
- MOSI 主设备数据输出,从设备数据输入。master out
- SCLK 时钟信号,由主设备产生。
- CS 从设备片选信号,由主设备控制通信·。
一般自定义GPIO输出、拉低开始通信,拉高结束通信
3、CPOL和CPHA
- 时钟极性( CPOL)
CPOL=0,串行同步时钟的空闲状态为低电平
CPOL=1,串行同步时钟的空闲状态为高电平 - 时钟相位( CPHA)
CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样
CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样 - 最高有效位(MSB)
- 最低有效位(LSB)
3、cubemx配置
3.1、spi5
- Data Size 数据长度
8bit和16bit两种 - First Bit 对齐形式
MSB 在前还是 LSB 在前 - Prescaler 预分频(psc)
用于控制波特率,波特率 = 时钟/psc
SPI5用的是APB2
- Clock Polarity CPOL
时钟极性设置 - Clock Phase CPHA
时钟相位设置 - CRC Calculation
是否启用CRC - NSS Signal Type 片选形式
硬件实现还是软件实现
3.2、片选线
- 低电平表示通信开始,所以要一开始要拉高
4、应用
- 对spi flash进行读写
- spi flash 为 W25Q256
4.1、原理图
4.2、读取设备id
- 这里是读取命令