SPI Interrupt Handler Handle interrupt events on the spi peripheral.
263 SPI_HandleTypeDef *spi = dev->
spi;
265 uint32_t itsource = spi->Instance->CR2;
266 uint32_t itflag = spi->Instance->SR;
269 if (((itflag & SPI_FLAG_OVR) == RESET) &&
270 ((itflag & SPI_FLAG_RXNE) != RESET) &&
271 ((itsource & SPI_IT_RXNE) != RESET)) {
277 if (((itflag & SPI_FLAG_TXE) != RESET) &&
278 ((itsource & SPI_IT_TXE) != RESET)) {
284 if ((itflag & (SPI_FLAG_MODF | SPI_FLAG_OVR | SPI_FLAG_FRE)) != RESET) {
286 if ((itflag & SPI_FLAG_OVR) != RESET) {
287 if (spi->State != HAL_SPI_STATE_BUSY_TX) {
288 spi->ErrorCode |= HAL_SPI_ERROR_OVR;
289 __HAL_SPI_CLEAR_OVRFLAG(spi);
296 if ((itflag & SPI_FLAG_MODF) != RESET) {
297 spi->ErrorCode |= HAL_SPI_ERROR_MODF;
298 __HAL_SPI_CLEAR_MODFFLAG(spi);
302 if ((itflag & SPI_FLAG_FRE) != RESET) {
303 spi->ErrorCode |= HAL_SPI_ERROR_FRE;
304 __HAL_SPI_CLEAR_FREFLAG(spi);
307 __HAL_SPI_DISABLE_IT(spi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR);
308 spi->State = HAL_SPI_STATE_READY;
SPI_HandleTypeDef * spi
Definition: sd_spi.h:99
static void sd_spi_error_cb(struct sd_spi_dev *dev)
Handle SPI error interrupts.
Definition: sd_spi.c:383
static enum sd_spi_error sd_spi_rx_isr(struct sd_spi_dev *dev)
Receive an amount of data in interrupt mode.
Definition: sd_spi.c:321