Skip to main content
Richard Li
Senior
June 28, 2026
Question

STM32F401 DMA NVIC-ISPR0 flag rising, but IABR0 flag didn't rising.

  • June 28, 2026
  • 1 reply
  • 9 views

I create one project for STM32F401 DMA-TIM4_PWM, so far first DMA work, but it didn’t go to handle routing.

After debug with Copilot help, find after DMA finish(set DMA_S0CR bit 0 to 1), the ISPR0 bit 11 set to 1, (it related with DMA1-s0.) but code didn’t jump to the vector in 0x6C (DMA1-so interrupt handle).

If add one line force ISR0 bit 11 to 1, (NVIC->ISPR[0] = (1 << 11);),  IABR0 bit 11 set to 1. jump to handle routing.

Why manual set work, use DMA_S0CR bit 0 to 1 doesn’t work (it same set  ISR0 bit 11 to 1 as manual.)?

1 reply

Richard Li
Senior
June 28, 2026

More detail, at the ISER0 bit 11 set to 1 time, SHPR1,2,3 SHCSR all all 0, no fault. VTOR is 0, NVIC all registers looks normal.