-4
제 논문에서는 SPI를 통해 MCP2515와 통신하기 위해 ATmega16을 사용하고 있습니다. Atmega16 데이터 시트에서 SPI를 슬레이브 모드로 설정하기 위해 예제 코드를 검사 할 때 다음 예제 코드를 얻습니다. 우리는 그들이 문자 SPI_SlaveReceive (무효)를 사용하는 이유를 이해하는 대신 단지 무효 SPI_SlaveReceive (무효)하지 않는char 함수 (void)와 void 함수 (void) 사이의 C 차이
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;
}
. 누군가 void 대신에 char을 사용하는 이유를 설명 할 수 있습니까? 그 차이점은 무엇입니까? 인터넷에서 좋은 설명을 찾을 수 없습니다.
'SPI_SlaveReceive'는 아무것도 리턴하지 않으므로'void'가 아닌 리턴 유형이 없습니다. –
char의 문제점은 무엇입니까? SPI_SlaveReceive (void)는 호출 될 때 아무 것도 취하지 않으며 char를 반환합니다. void SPI_SlaveInit (void) 아무것도 사용하지 않고 아무것도 반환하지 않습니다. –
"they"가 값을 반환하기를 원하기 때문에? – SingerOfTheFall