From 04fe4d258870b33992c814ba9b4ce3be9d85118c Mon Sep 17 00:00:00 2001 From: Laurent MEUNIER Date: Tue, 13 Sep 2016 17:02:30 +0200 Subject: [PATCH] [STM32F4 HAL] Avoid SPI spurious interrupt If SPI TXE is not disabled at the end of transfer, MBED application callback that is registered for transfer completion might be called twice --- hal/targets/cmsis/TARGET_STM/TARGET_STM32F4/stm32f4xx_hal_spi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hal/targets/cmsis/TARGET_STM/TARGET_STM32F4/stm32f4xx_hal_spi.c b/hal/targets/cmsis/TARGET_STM/TARGET_STM32F4/stm32f4xx_hal_spi.c index ba900173a7..8b9d204381 100644 --- a/hal/targets/cmsis/TARGET_STM/TARGET_STM32F4/stm32f4xx_hal_spi.c +++ b/hal/targets/cmsis/TARGET_STM/TARGET_STM32F4/stm32f4xx_hal_spi.c @@ -2450,6 +2450,7 @@ static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE)); SPI_CloseTx_ISR(hspi); } } @@ -2476,6 +2477,7 @@ static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ + __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE)); SPI_CloseTx_ISR(hspi); } }