-4

对于我的论文,我使用 ATmega16 通过 SPI 与 MCP2515 通信。当我们在 Atmega16 数据表中检查示例代码以将 SPI 设置为从模式时,我们将获得下一个示例代码。

void SPI_SlaveInit(void)
{
/* Set MISO output, all others input */
    DDR_SPI = (1<<DD_MISO);
/* Enable SPI */
    SPCR = (1<<SPE);
}
char SPI_SlaveReceive(void)
{
/* Wait for reception complete */
    while(!(SPSR & (1<<SPIF)))
;
/* Return data register */
    return SPDR;
}

我们不明白他们为什么使用 char SPI_SlaveReceive(void) 而不仅仅是 void SPI_SlaveReceive(void)。有人可以解释一下为什么他们使用 char 而不是 void 吗?有什么区别?我在互联网上找不到很好的解释。

4

1 回答 1

1

SPI_SlaveReceive接收到一些东西,所以它把那个“东西”作为 achar返回,因此返回类型。如果它被键入返回void,您将无法获得接收到的值,这将不是很有用!

如果它没有返回收到的内容,您将如何获得收到的内容..?

于 2016-10-26T08:04:09.327 回答