串行外围接口SPI(Serial Peripheral interface)

参考资料:《STM32不完全手册_库函数版本_V3.3》、《STM32中文参考手册_V10》侵删

SPI使一种高速的,全双工的,同步的通信总线。

芯片管脚上只占用4根线:MISO,MOSI,SCLK,CS
MISO 主设备数据输入,从设备数据输出。
MOSI 主设备数据输出,从设备数据输入。
SCLK 时钟信号,由主设备产生。
CS 从设备片选信号,由主设备控制。
STM32学习笔记——SPI通信

SPI与其他通信方式最不同的就是,主机的移位寄存器将其中的内容通过MOSI线发送给从机的同时,从机的移位寄存器也将其中的内容通过MISO线发送给主机,从而实现两个移位寄存器数据的交换(数据输出和数据输入是用同一个时钟信号同步的)。外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

根据输出外设的不同,串行同步时钟的时钟极性(CPOL)以及时钟相位(CPHA)要进行相应的调整。
CPOL=0时,串行同步时钟在空闲的时候为低电平,在一个时钟周期内,有两个跳变沿,第一次为上升,第二次为下降;CPOL=1时同理。CPHA用于控制在第几个跳变沿采集数据,CPHA=0时在第一个跳变沿时数据被采样;CPHA=1时在第二个跳变沿时数据被采样。

SPI的初始化

  1. 通信方式:半双工,全双工,串行发,串行收
  2. 主/从模式
  3. 数据格式:8位还是16位帧;MSB在前还是LSB在前
    (MSB:最高有效位;LSB:最低有效位;若MSB在前,表示数据最高位先被传输;反之同理)
  4. 时钟极性及采样方式:设置CPOL及CPHA
  5. 时钟频率
  6. CRC校验多项式:提高通道可靠性,大于1即可
  7. NSS位设置:有硬件控制还是软件控制

后续更新

相关文章: