SPI外设简介
STM32的SPI外设可用作通讯的主机及从机,支持支持最高的SCK时钟频率为fpclk/2,完全支持SPI协议的4种模式,数据帧长度可设置为8位或16位,可设置数据MSB先行或LSB先行。它还支持双线全双工、单线双向以及单线模式。
STM32F103型号的芯片默认fpclk1为36MHz,fpclk2为72MHz。
STM32F103系列提供了3个SPI,SPI1挂在APB2总线,SPI2/3挂在APB1总线。
用的比较多的还是全双工模式。
SPI外设框图

波特率发生器
用于生成通信同步时钟
NSS
是片选信号可以硬件自动控制,也可以使用软件控制。
数据寄存器
数据寄存器对应两个缓冲区
一个用于写(发送缓冲)。写操作将数据写到发送缓冲区。
一个用于读(接收缓冲)。读操作将返回接收缓冲区里面的数据。
移位寄存器
写入到发送缓冲区的数据,被送入到移位寄存器。
按位通过MOSI把数据发送出去。
按位把通过MISO接受的数据存入到移位寄存器。
接收数据完毕,数据被送入到接收缓冲区。