从待机模式唤醒后的代码执行等同于复位后的执行(从代码的主函数重新执行)。
在待机模式下按WKUP是不会进入中断的,此时还没有配置中断,只是它的上升沿触发退出待机模式。退出待机模式相当于复位,此时会再次判断是否进入待机模式,如果按下时间低于3S会再次进入,所以需要长按3S以上来进入运行模式。
待机唤醒,不会执行中断函数,仅仅是唤醒。
我的理解:
待机状态下,无论是长按三秒,还是短按,都不会进入中断。(待机状态下,只要按下WKUP就退出待机模式,相当于复位)
再次啰嗦:切记,退出待机模式相当于复位(肯定不会进入中断)。
深入理解正点原子的待机实验
下载程序后无效按键(按小于3秒以及没有按下)就会进入待机状态。待机状态下分长按键和无效按键分析:
-----在待机状态下短按(按小于3秒)会退出待机模式(相当于复位,程序重新执行到 if(按键判断))进入待机状态。
-----在待机状态下长按也会退出待机模式,不同的是 执行到 if(按键判断那里)不成立,会退出PWR_Init();执行主函数,就是液
晶显示。
同样的下载程序后如果长按操作,就会进入正常模式(液晶显示)。正常模式下分分长按键和无效按键分析:
-----在正常状态下短按会进入中断,但是在中断中 if(按键判断那里)不成立,液晶正常显示,不会进入待机。
-----在正常状态下长按,一旦按下就会进入中断,中断中判断是长按所以就进入待机模式。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。