dingy 发表于 2021-5-6 23:32

STM32F103跳过进入停止模式

STM32会跳过进入停止模式命令,继续运行。
查看参考手册上有这么一句:
为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
以下是我的代码,看了手册后,增加了前面两句。
EXTI_ClearITPendingBit(0x7ffff);
RTC_ClearITPendingBit(0x07);
PWR_EnterSTOPMode(PWR_Regulator_

dingy 发表于 2021-5-6 23:34

LowPower, PWR_STOPEntry_WFI);         
结果在运行这三句之后,程序还在运行

jiajs 发表于 2021-5-6 23:37


对于103系列的芯片我遇到过一次就是如果对RTC没有进行配置

wyjie 发表于 2021-5-6 23:40

或者配置不正确就不会进入待机模式

stly 发表于 2021-5-6 23:42

我觉得在进入待机模式前, 用调试器看一看, 到底有没有全部清掉

supernan 发表于 2021-5-6 23:44

因为有些中断请求不能清掉

jiahy 发表于 2021-5-6 23:46

比如电平中断

jlyuan 发表于 2021-5-6 23:48

跟设置有关

dingy 发表于 2021-5-6 23:50

重新配置了rtc,还是没有起到作

huangchui 发表于 2021-5-6 23:52

用调试器看一看

dingy 发表于 2021-5-6 23:54

检查了,所有外部中断的请求位,exti->pr,rtc->ctl,没有发现什么问题。

jlyuan 发表于 2021-5-6 23:56

问题解决了吗,不妨用调试器测测看。。

dingy 发表于 2021-5-6 23:57

没解决了,就是用仿真器调试的,理论上讲进入停止模式,时钟都没了,调试应该会断开。结果调试还能用,程序还在跑。

bqyj 发表于 2021-5-6 23:59

是不是外部中断源还在?

weifeng90 发表于 2021-5-7 07:31

你是不是进入软仿真模式了?

zwll 发表于 2021-5-7 22:22

进来看看,个人也感觉挺奇怪的,不知道楼主的问题找到没!

dingy 发表于 2021-5-7 22:25

单独写个测试代码测试下

pengf 发表于 2021-5-7 22:27

肯定是有什么影响到了他

heweibig 发表于 2021-5-7 22:30

现在调试的怎么样,有结果吗。我现在也遇到这个问题了,我要进入standby模式,PWR_WakeUpPinCmd(ENABLE);            
            PWR_EnterSTANDBYMode();
            __WFI();发现PDDS位根本写不了1,sleepdeep位可以写进去。用仿真器仿真程序还在跑,根本不会停。

wyjie 发表于 2021-5-7 22:31

参考手册中有这么句话:为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除
页: [1] 2
查看完整版本: STM32F103跳过进入停止模式