2025-03-17 11:51 PM - last edited on 2025-03-18 12:17 AM by mƎALLEm
Hi,
I set the button on the board to WAKE_UP2 to wake up from standby mode, but it doesn't work.
Also, waking up through the RTC interrupt doesn't work either.
The LSE source is an external crystal.
This is my code:
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the System Power */
SystemPower_Config();
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ICACHE_Init();
MX_USART1_UART_Init();
MX_RTC_Init();
/* USER CODE BEGIN 2 */
if(__HAL_PWR_GET_FLAG(PWR_FLAG_SBF) !=RESET)
{
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SBF);
char *str ="Wakeup form the STANDBY MODE\r\n\n";
HAL_UART_Transmit(&huart1, (uint8_t*)str, strlen(str), 10);
for(int i=0; i<20; i++)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(200);
}
HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);
HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);
}
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SBF);
__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&hrtc,RTC_FLAG_WUTF);
char *str ="Enter the STANDBY MODE\r\n\n";
HAL_UART_Transmit(&huart1, (uint8_t*)str, strlen(str), 10);
for(int i=0; i<5; i++)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(1000);
}
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2);
if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 0x2710, RTC_WAKEUPCLOCK_RTCCLK_DIV16, 0) != HAL_OK)
{
Error_Handler();
}
char *str2 ="STANDBY MODE is ON\r\n\n";
HAL_UART_Transmit(&huart1, (uint8_t*)str2, strlen(str2), 10);
HAL_PWR_EnterSTANDBYMode();
/* USER CODE END 2 */
Solved! Go to Solution.
2025-03-27 3:08 AM
Hello @dlagyals
I don't think the issue is related to the code you've shared
Maybe check the wakeup pin configuration, it should be set as an input with pull-up or pull-down resistor
Also, have you verified that LSE is working independently?
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-03-27 3:08 AM
Hello @dlagyals
I don't think the issue is related to the code you've shared
Maybe check the wakeup pin configuration, it should be set as an input with pull-up or pull-down resistor
Also, have you verified that LSE is working independently?
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.