SPI概念及使用

SPI是串行设备接口的(serial Peripheral Interface)简称。SPI是一种高速的,全双工,同步的通信总线。SPI

在芯片管脚上只占4根线。


二、单机与多机通信


1、单机通信

SCLK-------->SCLK

MOSI---------->MOSI

MISO<-----------MISO

SS ------------>ss

SCLK :串行时钟线,用于数据同步

  MOSI:主机输出数据,从机输入数据。

    Master ouput Slave input

MISO:主机输入数据,从机输出数据。


2、多机通信



三、通信的细节与过程

、模拟SPI接口

在有些情况下没有硬件SPI的支持,只能通过IO口来模拟SPI时序图,参考代码如下:

uint8_t SPI1_SendByte(uint8_t byte)

{

uint32_t i=0;

uint8_t d=0;

for(i=0; i<8; i++)

{

//MSB,最高有效位发送数据

if(byte & (1<<(7-i)))

W25QXX_MOSI =1;

else

W25QXX_MOSI =0;

//设置SCLK引脚为低电平,这个时候,从机会开始读取MOSI引脚电平

W25QXX_SCLK=0;

delay_us(2);

//由于是同步事件,这个时候,从机通过MISO引脚已经输出数据给主机,主机可以读取MISO引脚电平值

if(W25QXX_MISO)

d|=1<<(7-i);

//设置SCLK引脚为高电平

W25QXX_SCLK=1;

delay_us(2);

}

return d;

}




猜你喜欢

转载自blog.csdn.net/chengjieno1/article/details/78747525