实现功能:单片机以一定的采样频率(如2Khz)进行采样,例如每分钟(60s)只采前30s,后30s休眠(定时休眠唤醒),等到下一分钟再自动wakeup,如此循环30分钟。30分钟之后,单片机进入休眠stop模式。用串口中断的方式将休眠的单片机唤醒。
实现方法:
1、定时休眠唤醒code
HAL_Delay(2000);//进行采样的时间
HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);
HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle, 2, RTC_WAKEUPCLOCK_RTCCLK_DIV16);
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);//调用库函数进入STOP模式
SystemClockConfig_STOP();//停机模式后唤醒,恢复时钟源
count1++;
while(count1==1)//循环的次数
{
Rx_Init();
count1=0;
flag3=0;
__HAL_RTC_ALARM_DISABLE_IT(&RTCHandle, RTC_IT_ALRA);
__HAL_RTC_ALARM_CLEAR_FLAG(&RTCHandle, RTC_IT_ALRA);
HAL_TIM_Base_Stop(&TimHandle); //定时器停止
HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);
HAL_PWR_EnterSTOPMode(PWR_L