From 85a3f84d61507ab2003cbf24db849c5f8ed3050b Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Wed, 14 Jun 2017 14:37:22 +0200 Subject: [PATCH] spi: properly exchange bytes by sending and reading each byte within a SPI transaction --- source/drivers/stm32f0_spi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/drivers/stm32f0_spi.c b/source/drivers/stm32f0_spi.c index ac2cc79..1e76118 100644 --- a/source/drivers/stm32f0_spi.c +++ b/source/drivers/stm32f0_spi.c @@ -75,11 +75,13 @@ static int stm32f0_spi_tx_rx(struct spi_dev *dev, void *rx_buf, size_t rx_len, gpio_clear(GPIOA, GPIO4); for (i = 0; i < tx_len; ++i) { - spi_send8(dev->dev_id, tx ? *tx++ : 0); + spi_send8(dev->dev_id, *tx++); + (void)spi_read8(dev->dev_id); } if (rx_buf) { for (i = 0; i < rx_len; ++i) { + spi_send8(dev->dev_id, 0); *rx++ = spi_read8(dev->dev_id); } }