系统进入深度睡眠后,采用一个外部中断引脚唤醒。
执行完PIN中断函数之后,系统就莫名其妙不工作了,Debug停在下面这段代码
void CySysPmSleep(void)
{
uint8 interruptState;
interruptState = CyEnterCriticalSection();
/* CPU enters Sleep mode upon execution of WFI */
CY_PM_CPU_SCR_REG &= (uint32) (~CY_PM_CPU_SCR_SLEEPDEEP);
/* Sleep and wait for interrupt */
CY_PM_WFI;
CyExitCriticalSection(interruptState);
}
主程序中下面这句BLE事件处理是灰色的。不知道什么鬼,代码中有将BLE进入低功耗模式CyBle_EnterLPM(CYBLE_BLESS_DEEPSLEEP)。
void RunBle()
{
CyBle_ProcessEvents();
}