mirror of https://github.com/Desuuuu/klipper.git
stm32: Wait for transmission to complete before returning from spi_transfer()
It's possible for the SCLK pin to still be updating even after the last byte of data has been read from the receive pin. (In particular in spi mode 0 and 1.) Exiting early from spi_transfer() in this case could result in the CS pin being raised before the final updates to SCLK pin. Add an additional wait at the end of spi_transfer() to avoid this issue. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
1c594ef27a
commit
99d55185a2
|
@ -117,4 +117,7 @@ spi_transfer(struct spi_config config, uint8_t receive_data,
|
||||||
*data = rdata;
|
*data = rdata;
|
||||||
data++;
|
data++;
|
||||||
}
|
}
|
||||||
|
// Wait for any remaining SCLK updates before returning
|
||||||
|
while ((spi->SR & (SPI_SR_TXE|SPI_SR_BSY)) != SPI_SR_TXE)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue