在 AVR 中使用 SPI 进行传输

  • 本文关键字:传输 SPI AVR avr spi
  • 更新时间 :
  • 英文 :

数据传输

后,SPSR中的SPIF位何时复位假设

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

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

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

下面是一个可用于同时发送和接收的功能:

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

最新更新