diff --git a/src/shared/DMA/DMA.cpp b/src/shared/DMA/DMA.cpp index 3545107cce6ebc7e78f1b913cdad120d89eaa833..c87dfdd0886608f3b123d0aeab73d29aedeb07d1 100644 --- a/src/shared/DMA/DMA.cpp +++ b/src/shared/DMA/DMA.cpp @@ -51,17 +51,20 @@ void __attribute__((naked)) DMA2_Stream0_IRQHandler() */ void __attribute__((used)) SPI1rxDmaHandlerImpl() { - if(DMA2->LISR & (DMA_LISR_TEIF0 | DMA_LISR_DMEIF0)) + if(DMA2->LISR & (DMA_LISR_TEIF0 | DMA_LISR_DMEIF0 | DMA_LISR_FEIF0)) error = true; - if(DMA2->HISR & (DMA_HISR_TEIF5 | DMA_HISR_DMEIF5)) + if(DMA2->HISR & (DMA_HISR_TEIF5 | DMA_HISR_DMEIF5 | DMA_HISR_FEIF5)) error = true; DMA2->LIFCR = DMA_LIFCR_CTCIF0 | DMA_LIFCR_CTEIF0 - | DMA_LIFCR_CDMEIF0; + | DMA_LIFCR_CDMEIF0 + | DMA_LIFCR_CFEIF0; + DMA2->HIFCR = DMA_HIFCR_CTCIF5 | DMA_HIFCR_CTEIF5 - | DMA_HIFCR_CDMEIF5; + | DMA_HIFCR_CDMEIF5 + | DMA_HIFCR_CFEIF5; if(requestVector==nullptr) return; (*requestVector)[requestIndex].IRQendTransaction();