|
///GPIOA_15管脚 WKUP0配置
FL_GPIO_SetWakeupInterruptEntry(GPIO, FL_GPIO_WAKEUP_INT_ENTRY_NMI);//NMI中断入口
///PA15外部唤醒
GPIO_InitStruct.pin = FL_GPIO_PIN_15;
GPIO_InitStruct.mode = FL_GPIO_MODE_INPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
(void)FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//WKUP 使能
FL_GPIO_SetWakeupEdge(GPIO, FL_GPIO_WAKEUP_0, FL_GPIO_WAKEUP_TRIGGER_FALLING);//下降沿唤醒
FL_GPIO_EnableWakeup(GPIO, FL_GPIO_WAKEUP_0);//使能NWKUP
///休眠函数
FL_RMU_PDR_Enable(RMU); // 打开PDR
FL_RMU_BOR_Disable(RMU); // 关闭BOR 2uA
FL_VREF_Disable(VREF); // 关闭VREF1p2
FL_CDIF_DisableCPUToVAO(CDIF); // 关闭CPU到VAO的通道
/* 睡眠电源模式*/
FL_PMU_SetLowPowerMode(PMU, FL_PMU_POWER_MODE_SLEEP_OR_DEEPSLEEP);
__WFI(); //休眠
FL_VREF_Enable(VREF); //使能VREF1p2,延迟唤醒
当休眠后,WKUP0电平从1到0,MCU没有唤醒。。。。
|
|