STM32F103跳过进入停止模式
STM32会跳过进入停止模式命令,继续运行。查看参考手册上有这么一句:
为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
以下是我的代码,看了手册后,增加了前面两句。
EXTI_ClearITPendingBit(0x7ffff);
RTC_ClearITPendingBit(0x07);
PWR_EnterSTOPMode(PWR_Regulator_ LowPower, PWR_STOPEntry_WFI);
结果在运行这三句之后,程序还在运行
对于103系列的芯片我遇到过一次就是如果对RTC没有进行配置 或者配置不正确就不会进入待机模式 我觉得在进入待机模式前, 用调试器看一看, 到底有没有全部清掉
因为有些中断请求不能清掉 比如电平中断 跟设置有关 重新配置了rtc,还是没有起到作 用调试器看一看 检查了,所有外部中断的请求位,exti->pr,rtc->ctl,没有发现什么问题。 问题解决了吗,不妨用调试器测测看。。
没解决了,就是用仿真器调试的,理论上讲进入停止模式,时钟都没了,调试应该会断开。结果调试还能用,程序还在跑。
是不是外部中断源还在?
你是不是进入软仿真模式了? 进来看看,个人也感觉挺奇怪的,不知道楼主的问题找到没!
单独写个测试代码测试下 肯定是有什么影响到了他 现在调试的怎么样,有结果吗。我现在也遇到这个问题了,我要进入standby模式,PWR_WakeUpPinCmd(ENABLE);
PWR_EnterSTANDBYMode();
__WFI();发现PDDS位根本写不了1,sleepdeep位可以写进去。用仿真器仿真程序还在跑,根本不会停。 参考手册中有这么句话:为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除
页:
[1]
2