SPI协议是摩托罗拉公司开发的协议,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,至少需要下列4根线:
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。
SPI协议时序图
tips:不是每个器件的时序图都一样的,需要查看数据手册
使用STM32来做SPI协议可以通过IO模拟SPI和标准库SPI这两种方式实现SPI通信
IO模拟SPI
void SPI_Write(u8 Data)
{
CS_CLR; //拉低CS,SPI通信开始
SPI_WriteData(Data);
CS_SET; //拉高CS,SPI通信结束
}
void SPI_WriteData(u8 Data)
{
unsigned char i=0;
f