对于我的论文,我使用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吗?有什么不同? 我在网上找不到一个好的解释。
答案 0 :(得分:1)
SPI_SlaveReceive
收到一些东西,所以它将“某事”作为char
返回,因此返回类型。如果键入它以返回void
,您将无法获得收到的值,这不会非常有用!
如果它没有返回它收到的内容你怎么会得到收到的内容..?