Skip to main content
Micael
Associate
May 26, 2025
Solved

No Button interrupt PA0 in SubGHz sequencer code

Hi all,

 

So to my surprise, I have issues getting a button press to work in a Lora PingPong sequencer example, and I can't find any relevant posts, so ...

The part I'm using WLE5.

The ping-pong code is working fine, but I wanted to add a button to start sending from one end, and PA0 was my choice. I have setup the gpio, and falling edge interrupt, and everything works as far as to setting the Pending bit in EXTI/PR1/PIF bit 0 when I press the button. But no interrupt happens. I suppose I must have missed something. But what?

 

The code sits in HAL_PWR_EnterSLEEPMode() -> __WFI()

 

So I think my question is what parts could I have missed?
My main suspicion is related to HAL_NVIC_SetPriority() and HAL_NVIC_EnableIRQ(), which I don't seem to get a hang on. I have tried different arguments (EXTI0_IRQn, EXTI15_10_IRQn) to them, but it makes no difference. How do know which one to use for a particular gpio?

 

Edit: OK, so now I found that SYSCFG_EXTICR1->EXTI0 selects the interrupt, and I have verified that it is 000, so that means that EXTI0_IRQn should be fine. I have now;
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
After setting up the gpio code.

But still no interrupt. (still sits with the "pending" bit active).

 

 

 

This topic has been closed for replies.
Micael
MicaelBest answer
Associate
May 26, 2025

OK, so I knew it was something silly. Turns out only EXTI15_10 had a jump vector to the EXTI interrupt function. Oh well.

 

1 reply

Micael
MicaelAuthorBest answer
Associate
May 26, 2025

OK, so I knew it was something silly. Turns out only EXTI15_10 had a jump vector to the EXTI interrupt function. Oh well.