串口通讯 spi 代码
# SPI代码
## 初始化
```c
// 初始化SPI
void spi_init (void)
{
// 1. 将SPI置于空闲状态
SPI_CS = 1;
// 2. 设置工作模式
SPCR = 0x50;
SPSR = 0x01;
// 3. 使能SPI
SPI_ENABLE = 1;
}
发送数据
// 发送数据
void spi_send (unsigned char data)
{
// 1. 将SPI置于发送状态
SPI_CS = 0;
// 2. 将数据发送至SPDR
SPDR = data;
// 3. 等待数据发送完毕
while (!(SPSR & 0x80));
// 4. 将SPI置于空闲状态
SPI_CS = 1;
}
接收数据
// 接收数据
unsigned char spi_receive (void)
{
unsigned char data;
// 1. 将SPI置于发送状态
SPI_CS = 0;
// 2. 将数据发送至SPDR
SPDR = 0x00;
// 3. 等待数据发送完毕
while (!(SPSR & 0x80));
// 4. 读取数据
data = SPDR;
// 5. 将SPI置于空闲状态
SPI_CS = 1;
return data;
}
```