diff --git a/src/main/drivers/bus_spi.c b/src/main/drivers/bus_spi.c index 41ad4a4fb..9e0594378 100644 --- a/src/main/drivers/bus_spi.c +++ b/src/main/drivers/bus_spi.c @@ -168,7 +168,7 @@ uint32_t spiTimeoutUserCallback(SPI_TypeDef *instance) } // return uint8_t value or -1 when failure -uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t data) +uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t txByte) { uint16_t spiTimeout = 1000; @@ -177,9 +177,9 @@ uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t data) return spiTimeoutUserCallback(instance); #ifdef STM32F303xC - SPI_SendData8(instance, data); + SPI_SendData8(instance, txByte); #else - SPI_I2S_SendData(instance, data); + SPI_I2S_SendData(instance, txByte); #endif spiTimeout = 1000; while (SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_RXNE) == RESET) @@ -206,14 +206,14 @@ bool spiIsBusBusy(SPI_TypeDef *instance) } -bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len) +bool spiTransfer(SPI_TypeDef *instance, uint8_t *rxData, const uint8_t *txData, int len) { uint16_t spiTimeout = 1000; uint8_t b; instance->DR; while (len--) { - b = in ? *(in++) : 0xFF; + b = txData ? *(txData++) : 0xFF; while (SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_TXE) == RESET) { if ((spiTimeout--) == 0) return spiTimeoutUserCallback(instance); @@ -233,8 +233,8 @@ bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len #else b = SPI_I2S_ReceiveData(instance); #endif - if (out) - *(out++) = b; + if (rxData) + *(rxData++) = b; } return true; diff --git a/src/main/drivers/bus_spi.h b/src/main/drivers/bus_spi.h index 799ffe745..7c6532236 100644 --- a/src/main/drivers/bus_spi.h +++ b/src/main/drivers/bus_spi.h @@ -85,10 +85,10 @@ typedef enum SPIDevice { void spiPreInitCs(ioTag_t iotag); bool spiInit(SPIDevice device); void spiSetDivisor(SPI_TypeDef *instance, uint16_t divisor); -uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t in); +uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t data); bool spiIsBusBusy(SPI_TypeDef *instance); -bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len); +bool spiTransfer(SPI_TypeDef *instance, uint8_t *rxData, const uint8_t *txData, int len); uint16_t spiGetErrorCounter(SPI_TypeDef *instance); void spiResetErrorCounter(SPI_TypeDef *instance); diff --git a/src/main/drivers/bus_spi_hal.c b/src/main/drivers/bus_spi_hal.c index e970f3cb4..3dcd1ed3f 100644 --- a/src/main/drivers/bus_spi_hal.c +++ b/src/main/drivers/bus_spi_hal.c @@ -261,22 +261,22 @@ bool spiIsBusBusy(SPI_TypeDef *instance) return false; } -bool spiTransfer(SPI_TypeDef *instance, uint8_t *out, const uint8_t *in, int len) +bool spiTransfer(SPI_TypeDef *instance, uint8_t *rxData, const uint8_t *txData, int len) { SPIDevice device = spiDeviceByInstance(instance); HAL_StatusTypeDef status; - if (!out) // Tx only + if (!rxData) // Tx only { - status = HAL_SPI_Transmit(&spiDevice[device].hspi, (uint8_t *)in, len, SPI_DEFAULT_TIMEOUT); + status = HAL_SPI_Transmit(&spiDevice[device].hspi, (uint8_t *)txData, len, SPI_DEFAULT_TIMEOUT); } - else if (!in) // Rx only + else if (!txData) // Rx only { - status = HAL_SPI_Receive(&spiDevice[device].hspi, out, len, SPI_DEFAULT_TIMEOUT); + status = HAL_SPI_Receive(&spiDevice[device].hspi, rxData, len, SPI_DEFAULT_TIMEOUT); } else // Tx and Rx { - status = HAL_SPI_TransmitReceive(&spiDevice[device].hspi, in, out, len, SPI_DEFAULT_TIMEOUT); + status = HAL_SPI_TransmitReceive(&spiDevice[device].hspi, txData, rxData, len, SPI_DEFAULT_TIMEOUT); } if ( status != HAL_OK) @@ -295,10 +295,12 @@ static bool spiBusReadBuffer(const busDevice_t *bus, uint8_t *out, int len) } // return uint8_t value or -1 when failure -uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t in) +uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t txByte) { - spiTransfer(instance, &in, &in, 1); - return in; + uint8_t rxByte; + + spiTransfer(instance, &rxByte, &txByte, 1); + return rxByte; } // return uint8_t value or -1 when failure