打印
[STM32F1]

如何区分唤醒源是RTC还是WKUP pin

[复制链接]
512|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32进入待机被唤醒后,如何区分唤醒源是RTC还是WKUP pin

使用特权

评论回复
沙发
stly| | 2020-9-3 20:59 | 只看该作者

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
chenjunt|  楼主 | 2020-9-3 21:03 | 只看该作者
WKUP pin(PA0)连接了一个加速度传感器高电平触发。 另外RTC也定时设定了10min 唤醒后上传一次数据。如果无法区分,那么每一次被加速度唤醒后就会RTC就会重新开始计数。我希望不管有没有被加速度唤醒我的RTC计时始终都是每10分钟唤醒。

使用特权

评论回复
地板
dingy| | 2020-9-3 21:09 | 只看该作者
手册中咋写

使用特权

评论回复
5
chenjunt|  楼主 | 2020-9-3 21:12 | 只看该作者
手册中PWR_CSR 寄存器的WUF位只能判断系统是否是被唤醒的。但并无法区分这两种唤醒模式

使用特权

评论回复
6
hanwe| | 2020-9-3 21:15 | 只看该作者

使用特权

评论回复
7
wangzsa| | 2020-9-3 21:19 | 只看该作者
RTC唤醒后,RTC的寄存器中应该会有指示吧?

使用特权

评论回复
8
zhuhuis| | 2020-9-3 21:22 | 只看该作者
对于没有指示的,也可以判断当前时间和期望值是否匹配。

使用特权

评论回复
9
chuxh| | 2020-9-3 21:27 | 只看该作者
RTC唤醒的话,RTC的标志位 RTC_ISR_WUTF 会被置1的,可以通过这个判断是不是RTC,不是RTC就是其它了

使用特权

评论回复
10
chenjunt|  楼主 | 2020-9-3 21:31 | 只看该作者
感谢回复。用下面代码实测OK。HAL 库
        if(__HAL_RTC_WAKEUPTIMER_GET_FLAG(&hrtc, RTC_FLAG_WUTF) != RESET)
        {
                RTC_wakeup_flag = 1;
                printf("RTC wakeup.\n");
        }

使用特权

评论回复
11
liuzaiy| | 2020-9-3 21:35 | 只看该作者
楼主的问题怎么解决的,我现象也碰到了这个问题。RTC和WKUP同时用,会死机。。。

使用特权

评论回复
12
chenjunt|  楼主 | 2020-9-3 21:39 | 只看该作者
你好,解决了了吗,我也不能同时使用rtc和wkup

使用特权

评论回复
13
kangzj| | 2020-9-3 21:42 | 只看该作者
en 还是不知道怎么区分。网上资料好少啊

使用特权

评论回复
14
chenjunt|  楼主 | 2020-9-3 21:50 | 只看该作者
我上面的回复已经给出了怎么识别RTC唤醒了啊。那么剩下的就是IO唤醒或者开机启动了

使用特权

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

本版积分规则

718

主题

7868

帖子

5

粉丝