[STM32F1]

STM32F103跳过进入停止模式

[复制链接]
836|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 | 显示全部楼层
或者配置不正确就不会进入待机模式

使用特权

评论回复
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的闹钟标志都必须被清除

使用特权

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

本版积分规则

745

主题

10920

帖子

6

粉丝