From 1ad325396c0535c7feacc4896bc18211c7eab661 Mon Sep 17 00:00:00 2001 From: Daniel Fekete Date: Wed, 19 Apr 2017 21:21:53 +0200 Subject: [PATCH] When transfering 8 bit SPI, only set / get the first byte --- STM32/libraries/SPI/src/SPI.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/STM32/libraries/SPI/src/SPI.h b/STM32/libraries/SPI/src/SPI.h index 13939d0..15eb610 100644 --- a/STM32/libraries/SPI/src/SPI.h +++ b/STM32/libraries/SPI/src/SPI.h @@ -100,11 +100,12 @@ class SPIClass { inline uint8_t SPIClass::transfer(uint8_t data) { - spiHandle.Instance->DR = data; + *(volatile uint8_t*)&spiHandle.Instance->DR = data; + while(__HAL_SPI_GET_FLAG(&spiHandle, SPI_FLAG_RXNE) == RESET); while(__HAL_SPI_GET_FLAG(&spiHandle, SPI_FLAG_BSY) == SET); - return spiHandle.Instance->DR; + return *(volatile uint8_t*)&spiHandle.Instance->DR; /* if (HAL_SPI_TransmitReceive(&spiHandle, &data, &data, 1, 1000) != HAL_OK) {