|
楼主 |
发表于 2022-8-24 20:35:36
|
显示全部楼层
本帖最后由 ttfox 于 2022-8-24 20:44 编辑
待机代码如下:
- void Sys_EnterStandbyMode(void)
- {
- LED_Red_On;
- LED_Green_On;
- delay_ms(1000);
-
- // if( (__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET)
- // && (__HAL_PWR_GET_FLAG(PWR_FLAG_C2SB) != RESET)
- // )//检查系统是否从待机模式恢复
- // {
- __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); //必须清除待机标志,才能顺利进入下次待机模式
- __HAL_PWR_CLEAR_FLAG(PWR_FLAG_C2SB);
- printf("待机唤醒复位 \r\n");
- // }
- // else printf("非待机唤醒复位 \r\n");
-
- HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1_HIGH);//禁用所有使用的唤醒源:PWR_WAKEUP_PIN1 connected to PA.00
- HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);
-
-
- delay_ms(5000);
- LED_Red_Off;
- LED_Green_Off;
- printf("进入待机模式 \r\n");
- __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); //清除全部唤醒标志,否则无法唤醒
- // GPIOSetting_EnterShutdown();
- HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1_HIGH);//启用连接到PA.00的WakeUp PinW
- HAL_RTCEx_SetWakeUpTimer_IT(&hrtc,20479,RTC_WAKEUPCLOCK_RTCCLK_DIV16);
-
- HAL_PWR_EnterSTANDBYMode();//进入待机模式
-
- }
复制代码 |
|