hey ich verwende ADS1292 für mein eigenes Projekt, und ich bin verwirrt mit SPI-Protokoll.SPI-Protokoll-Prozedur
Ich habe einen Code im Internet gefunden und ich habe festgestellt, dass er auf einmal sendet und empfängt.
zum Beispiel, ich möchte 0xFF an Slave-Gerät senden.
dann sendet es die Daten zuerst und wartet auf einen Empfang.
Und beim Empfangen von Daten sendet es ein Dummy-Byte und dann empfangen.
Wer bitte erklären, warum sie das tun?
uint8_t sEE_ReadByte(void)
{
return (sEE_SendByte(sEE_DUMMY_BYTE));
}
uint8_t sEE_SendByte(uint8_t byte)
{
/*!< Loop while DR register in not empty */
while (SPI_I2S_GetFlagStatus(sEE_SPI, SPI_I2S_FLAG_TXE) == RESET);
/*!< Send byte through the SPI peripheral */
SPI_SendData(sEE_SPI, byte);
/*!< Wait to receive a byte => I do not understand this point*/
while (SPI_I2S_GetFlagStatus(sEE_SPI, SPI_I2S_FLAG_RXNE) == RESET);
/*!< Return the byte read from the SPI bus */
return (uint8_t)SPI_ReceiveData(sEE_SPI);
}