2017-01-20 18 views

ответ

3

Да, просто установите бит HTIE в соответствующий регистр конфигурации канала, например.

DMA1_Channel2->CCR |= DMA_CCR_HTIE; 

для канала 2, перед началом передачи. Не забудьте установить приоритет и включить прерывание.

В обработчике прерываний проверьте, действительно ли это прерывание с половинной передачей, очистить флаг, а затем выполнить любую обработку.

void DMA1_Channel2_3_IRQHandler(void) { 
    if(DMA1->ISR & DMA_ISR_HTIF2) { 
     DMA1->IFCR = DMA_IFCR_CHTIF2; 
     memcpy(here, there, length/2); 
    } 
}