打印
[STM32F1]

STM32F103跳过进入停止模式

[复制链接]
1138|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingy|  楼主 | 2021-5-6 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 | 只看该作者
或者配置不正确就不会进入待机模式

使用特权

评论回复
5
stly| | 2021-5-6 23:42 | 只看该作者
我觉得在进入待机模式前, 用调试器看一看, 到底有没有全部清掉

使用特权

评论回复
6
supernan| | 2021-5-6 23:44 | 只看该作者
因为有些中断请求不能清掉

使用特权

评论回复
7
jiahy| | 2021-5-6 23:46 | 只看该作者
比如电平中断

使用特权

评论回复
8
jlyuan| | 2021-5-6 23:48 | 只看该作者
跟设置有关

使用特权

评论回复
9
dingy|  楼主 | 2021-5-6 23:50 | 只看该作者
重新配置了rtc,还是没有起到作

使用特权

评论回复
10
huangchui| | 2021-5-6 23:52 | 只看该作者
用调试器看一看

使用特权

评论回复
11
dingy|  楼主 | 2021-5-6 23:54 | 只看该作者
检查了,所有外部中断的请求位,exti->pr,rtc->ctl,没有发现什么问题。

使用特权

评论回复
12
jlyuan| | 2021-5-6 23:56 | 只看该作者
问题解决了吗,不妨用调试器测测看。。

使用特权

评论回复
13
dingy|  楼主 | 2021-5-6 23:57 | 只看该作者
没解决了,就是用仿真器调试的,理论上讲进入停止模式,时钟都没了,调试应该会断开。结果调试还能用,程序还在跑。

使用特权

评论回复
14
bqyj| | 2021-5-6 23:59 | 只看该作者
是不是外部中断源还在?

使用特权

评论回复
15
weifeng90| | 2021-5-7 07:31 | 只看该作者
你是不是进入软仿真模式了?

使用特权

评论回复
16
zwll| | 2021-5-7 22:22 | 只看该作者
进来看看,个人也感觉挺奇怪的,不知道楼主的问题找到没!

使用特权

评论回复
17
dingy|  楼主 | 2021-5-7 22:25 | 只看该作者
单独写个测试代码测试下

使用特权

评论回复
18
pengf| | 2021-5-7 22:27 | 只看该作者
肯定是有什么影响到了他

使用特权

评论回复
19
heweibig| | 2021-5-7 22:30 | 只看该作者
现在调试的怎么样,有结果吗。我现在也遇到这个问题了,我要进入standby模式,PWR_WakeUpPinCmd(ENABLE);            
            PWR_EnterSTANDBYMode();
            __WFI();  发现PDDS位根本写不了1,sleepdeep位可以写进去。用仿真器仿真程序还在跑,根本不会停。

使用特权

评论回复
20
wyjie| | 2021-5-7 22:31 | 只看该作者
参考手册中有这么句话:为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志都必须被清除

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

粉丝