cancel
Showing results for 
Search instead for 
Did you mean: 

Watchdog gets triggered on every Interrupt, that's not preconfigured through CubeMX

gfxfloro
Senior

Hi everyone,

On my STM32F429-Disco Board the WWDG-Handler triggers everytime there is an Interrupt, that I didn't configure through CubeMX. I wanted to add another UART and enabled the RXNE Interrupt. As soon as anything happens on the RX line the WWDG triggers. Same thing with the external Interrupt on a GPIO. As soon as I pull the Pin High or Low the µC freezes.

Any idea what I'm doing wrong?

3 REPLIES 3
KnarfB
Principal III

The startup code defines the interrupt vector table. Most unused entries are pre-filled with a DefaultHandler. This includes EXTI, WWDG etc..

The debugger may display one of the alias names for the DefaultHandler.

To avoid DefaultHandler being called, define your own handler exactly with its predefined name like void EXTI4_15_IRQHandler(void).

gfxfloro
Senior

For my UART example the Handler is implemented like this:

void UART5_IRQHandler(void)

in the startup file like this:

   .weak      UART5_IRQHandler         
   .thumb_set UART5_IRQHandler,Default_Handler

That should be sufficient right? On my other µc's I can just implement the handler and enable the interrupt and it works. But on this there seems to be some other issue

KnarfB
Principal III

You're right (if it's C code not C++). Hmm. Have you tried defining it in CubeMX for testing?