在AVR中使用SPI进行传输

时间:2017-11-01 16:01:19

标签: avr spi

SPSR中的SPIF位何时会在数据传输后复位 假设

<ion-grid>
        <ion-row>
            <ion-col col-6 class="hidden-md">
                1 of 4
            </ion-col>
            <ion-col col-6 class="hidden-md">
                2 of 4
            </ion-col>
        </ion-row>
    </ion-grid>

传输后SPIF将置位以及如何将此位复位以进行接收。

1 个答案:

答案 0 :(得分:1)

使用SPI,您无法选择是发送还是发送,而是同时执行这两项操作。因此无需“重置SPIF进行接收”。我相信在您的循环终止后,SPDR寄存器中的接收数据可用,但您应该阅读特定AVR的数据表以确保。

以下是您可以用来同时传输和接收的功能:

uint8_t SPITransmit(uint8_t data)
{
  SPDR = data;
  while(!(SPSR & (1<<SPIF)));
  return SPDR;
}