cancel
Showing results for 
Search instead for 
Did you mean: 

IRQ handler not being called anymore after exit from low power mode (stop2) on the STM32WB55 Nucleo board

DavidH
Associate

Could anyone please help me with this problem? Thanks in advance.

I am using the low power manager (lpm) interface generated by MX for the STM32WB55 Nucleo board. I am using HSE as system clock source, so I did not make changes to the two functions PWR_EnterStopMode and PWR_ExitStopMode, as suggested by several posts.

I found that when I did not turn on the low power manager, everything works fine. But when I turned on the lpm, the interrupts don't work anymore. It feels like I missed something in the function for exiting stop mode. But I tried many different things: turned on PLL, re-init DMA, SAI, I2C, but with no differences. I have struggled for almost a week without any progress.

Could anyone please give me some pointers? I uploaded the three related functions (with comments removed).

void DMA2_Channel3_IRQHandler(void)

{

 HAL_DMA_IRQHandler(&hdma_sai1_a);

}

void PWR_EnterStopMode( void )

{

 HAL_SuspendTick();

 EnterLowPower();

 LL_PWR_SetPowerMode( LL_PWR_MODE_STOP2 );

 LL_LPM_EnableDeepSleep( );

#if defined ( __CC_ARM)

 __force_stores( );

#endif

 __WFI();

 return;

}

void PWR_ExitStopMode( void )

{

 ExitLowPower();

 HAL_ResumeTick();

 return;

}

2 REPLIES 2
Scott Löhr
Senior II

You are presenting kind of a nebulous problem - since you are running on the ST Nucleo board, maybe you could start with an ST sample app for STOP2 and see that it is working in and out of stop mode, then add your customization incrementally?

Remy ISSALYS
ST Employee

Hello,

DMA isn't supported in stop low power mode. In your case, you should create a client in low power manager in order to disable the stop low power mode before using DMA and then when you have finished with DMA re-enable the stop low power mode.

Best Regards