我在使用stm32,移植ucos-ii,开启中断0,进入stop模式后不能正常运行,我做了以下试验
1、进入stop模式以后,触发中断0,在EXTI0_IRQHandler()中开启串口打印,串口会输出,证明是成功进入了中断的,只是唤醒后没能正确运行程序。
2、我尝试不启动ucos-ii,单纯用延时然后进入进入stop模式,触发中断后,程序能正常运行,因此,程序的进入和退出stop模式的机制也没问题。
3、我尝试将进入stop模式的任务优先级调至最低,
4、在进入中断后,重新初始化所有时钟
5、实在没有办法,在进入中断后,清除EXTI->PR=1<<0;然后强制跳至用户区代码,初始化正常,但是ucos-ii任务依旧没有启动,奇了怪了
6、折腾了个把星期,黔驴技穷,网上找高手求助
我想这个应该是ucos-ii从低功耗模式退出的一个普遍问题,希望知道其中原委的兄弟不吝赐教,也希望有类似经历的朋友一起讨论下,不胜感激 |