_WFI()进入睡眠模式,能被中断唤醒,很快响应中断。如果想节能会选择进入部分掉电的深度睡眠模式。进入这种模式会导致其它外围设备断电,ram1也会丢失数据,这会破坏运行环境,导致唤醒后程序可能飞掉,我的案例中就是系统没任何反应,其实是已经飞了。
它的datasheet中给出的建议是通过中断唤醒,进入睡眠前允许执行唤醒的中断,定义中断函数,在函数中立即调用软启动。
其实这跟reset按钮一样,但是使用部分掉电深度睡眠模式有一个好处:减少一个按钮,将软启动和功能按钮结合在一起,同时可以与几个中断源结合。
虽然理论上可以在唤醒后重建环境,但是跟从头开始执行差别应该不大了,所以不如痛快一点直接软启动了。