1)STM32运行十秒后自动进入待机,使用WakeUp引脚唤醒CPU后,重复以上动作。
int main(void)
{
time_cnt = 0;
HAL_Init();
SystemClock_Config();
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_PWR_DisableWakeUpPin(PWR_CSR_EWUP); //禁止wakeup PA0引脚,可以用来做普通引脚功能
while (1)
{
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_13); //运行时,闪LED
time_cnt++;
if(time_cnt >= 10) //10秒后,进入待机模式
{
time_cnt = 0;
//打开wakeup引脚,待机后来个上升沿就可以唤醒cpu了
HAL_PWR_EnableWakeUpPin(PWR_CSR_EWUP);
//清除wakeup_flag,这里很重要,假如没有,就不能重复的让cpu唤醒再进入待机
//即HAL_PWR_EnterSTANDBYMode()将不起作用!!
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
//cpu进入待机模式,NREST Pin,IWDG,RTC alarm,WakeUp引脚上升沿,都可以唤醒cpu
HAL_PWR_E