Mam problem z odczytem danych po SPI w STM32, funkcja zwracająca dane zwraca mi 0xFF choć sprawdziłem analizatorem i wiem że dane przychodzą prawidłowe i różne od 0xFF. Odbiór danych realizuję funkcją
Kod: Zaznacz cały
uint8_t SPI_SEND_READ_CHAR(SPI_TypeDef *SPIx, char data)
{
while(!(SPIx->SR & SPI_SR_TXE));
*(volatile uint8_t *)&SPIx->DR = data;
while(!(SPIx->SR & SPI_SR_RXNE));
return *(volatile uint8_t *)&SPIx->DR;
}
I później czytam
Kod: Zaznacz cały
SET_CS();
ADC_DATA data;
data.out = 0;
SPI_SEND_CHAR(SPI, 0x01);
Delay(200);
for(uint8_t x=0; x<3; x++)
{
data.items[x] = SPI_SEND_READ_CHAR(SPI, 0x00);
}
while(SPI_CHECK_STATE(SPI));
RESET_CS();
return (data.out >> 8);
Zmienna data to unia, do tablicy data.items trafiają same wartości 0xFF. Choć sprawdziłem analizatorem i wiem że są różne od 0xFF.
Ktoś ma jakiś pomysł skąd taka wartość ?