diff --git a/src/main/common/utils.h b/src/main/common/utils.h index 076b4680f2..e11ac32e88 100644 --- a/src/main/common/utils.h +++ b/src/main/common/utils.h @@ -55,9 +55,11 @@ #define PP_CALL(macro, ...) macro(__VA_ARGS__) #if !defined(UNUSED) -#define UNUSED(x) (void)(x) +#define UNUSED(x) (void)(x) // Variables and parameters that are not used #endif +#define DISCARD(x) (void)(x) // To explicitly ignore result of x (usually an I/O register access). + #define STATIC_ASSERT(condition, name) _Static_assert((condition), #name) diff --git a/src/main/drivers/bus_spi_stdperiph.c b/src/main/drivers/bus_spi_stdperiph.c index 08ed3e3a22..76f636b16a 100644 --- a/src/main/drivers/bus_spi_stdperiph.c +++ b/src/main/drivers/bus_spi_stdperiph.c @@ -113,7 +113,7 @@ uint8_t spiTransferByte(SPI_TypeDef *instance, uint8_t txByte) { uint16_t spiTimeout = 1000; - instance->DR; + DISCARD(instance->DR); while (SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_TXE) == RESET) if ((spiTimeout--) == 0) @@ -154,7 +154,7 @@ bool spiTransfer(SPI_TypeDef *instance, const uint8_t *txData, uint8_t *rxData, uint16_t spiTimeout = 1000; uint8_t b; - instance->DR; + DISCARD(instance->DR); while (len--) { b = txData ? *(txData++) : 0xFF; while (SPI_I2S_GetFlagStatus(instance, SPI_I2S_FLAG_TXE) == RESET) {