2025-06-23 8:26 AM
Hello everyone,
I'm working on a project using the STM32WL33CC1, based on the example provided in the official ST GitHub repository:
I’ve implemented the DeepStop (STOP2) low power mode using the same structure as in github example, with the RTC configured to wake the system every 30 seconds. However, I’m encountering the following behavior:
-The MCU successfully enters DeepStop (measured current drops to ~100 µA as expected);
-But it does not wake up, neither from RTC WakeUp nor EXTI;
-On the other hand, the exact same code works correctly in Shutdown mode.
What I've verified so far:
-LSE clock is active before entering STOP2;
-RTC WakeUp is configured correctly;
-EXTI and NVIC are properly set.
The project includes an external EEPROM, buzzer, Reed Switch with EXTI, LEDs, and Sub-GHz communication (2FSK/OOK).
Has anyone experienced similar issues with STM32WL33CC1 and STOP2 wake-up failures?
Are there any known limitations when using RTC or EXTI wake-up from DeepStop with this MCU?
Any advice or insights would be greatly appreciated.
Best regards
2025-08-05 8:38 AM - edited 2025-08-05 8:38 AM
Hello @SergioSI,
There are no known hardware limitations or errata for this behavior on STM32WL33 series (you can check the errata sheet).
Could you share you RTC configuration?
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-08-05 8:48 AM - last edited on 2025-08-06 1:35 AM by Sarra.S
/**
* @brief RTC Initialization Function
* @PAram None
* @retval None
*/
static void MX_RTC_Init(void)
{
/* USER CODE BEGIN RTC_Init 0 */
__HAL_RCC_RTC_FORCE_RESET(); // Forces a reset of the RTC peripheral
__HAL_RCC_RTC_RELEASE_RESET(); // Releases the RTC peripheral from reset state
__HAL_RCC_RTC_CLK_ENABLE(); // Enables the RTC peripheral clock
/* USER CODE END RTC_Init 0 */
/* USER CODE BEGIN RTC_Init 1 */
/* USER CODE END RTC_Init 1 */
/** Initialize RTC Only
*/
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN RTC_Init 2 */
HAL_NVIC_SetPriority(RTC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(RTC_IRQn);
/* USER CODE END RTC_Init 2 */
}