SPI学习记录
SPI的接收发送数据的机制与IIC差不多
但SPI是全双工的
uint8_t SPI_ReadWriteByte(uint8_t txData)
{
uint8_t i;
uint8_t rxData=0;//定义接收数据变量
for(int i=0;i<8;i++)
{
SPI_SCK_0;
delay_us(1);
//数据发送
if(txData & 0x80)//如果高位发送的数据不为0时则发送
SPI_MOSI_1;//发送
else
SPI_MOSI_0;//不发送
txData<<=1;//左移一位
delay_us(1);
//数据接收
rxData<<=1;
if(SPI_READ_MISO)//如果接收到的数据只有0时才不会运行
rxData |= 0x01;//写入数据
delay_us(1);
}
SPI_SCK_0;
return rxData;
}