私は自分のプロジェクトにADS1292を使用しています。自分自身がSPIプロトコルと混同しています。SPIプロトコル手順
私はインターネット上でいくつかのコードを見つけたので、一度に送受信していることがわかりました。
たとえば、0xFFをスレーブデバイスに送信したいとします。
次に、データを最初に送信し、受信を待ちます。
データを受信すると、ダミーバイトを送信してから受信します。
誰でもこの理由を教えてください。
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);
}