如何区分STM32进入待机被唤醒的唤醒源是RTC还是WKUP pin

2019-07-14 15:46发布

如题,WKUP pin(PA0)连接了一个加速度传感器高电平触发。 另外RTC也定时设定了10min 唤醒后上传一次数据。如果无法区分,那么每一次被加速度唤醒后就会RTC就会重新开始计数。我希望不管有没有被加速度唤醒我的RTC计时始终都是每10分钟唤醒。下图手册中PWR_CSR 寄存器的WUF位只能判断系统是否是被唤醒的。但并无法区分这两种唤醒模式。
5.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
zrl12123456
1楼-- · 2019-07-14 19:32
RTC唤醒的话,RTC的标志位 RTC_ISR_WUTF 会被置1的,可以通过这个判断是不是RTC,不是RTC就是其它了
fgdfdzdg
2楼-- · 2019-07-14 23:02

感谢回复。用下面代码实测OK。HAL 库
        if(__HAL_RTC_WAKEUPTIMER_GET_FLAG(&hrtc, RTC_FLAG_WUTF) != RESET)
         {
                 RTC_wakeup_flag = 1;
                 printf("RTC wakeup. ");
         }
lin364884292
3楼-- · 2019-07-15 00:50
WKUP唤醒后,RTC怎么不会重置计数呢?  
Shype
4楼-- · 2019-07-15 02:44
 精彩回答 2  元偷偷看……
zrl12123456
5楼-- · 2019-07-15 02:48
我上面的回复已经给出了怎么识别RTC唤醒了啊。那么剩下的就是IO唤醒或者开机启动了
李春明
6楼-- · 2019-07-15 08:38
对此不太了解  学习一下

一周热门 更多>