标题: HAL_RTCEx_SetWakeUpTimer_IT函数的问题 [打印本页]

作者: wuhai5    时间: 2020-8-6 10:04
标题: HAL_RTCEx_SetWakeUpTimer_IT函数的问题
HAL_RTCEx_SetWakeUpTimer_IT
(&
hrtc
,
1800
,
RTC_WAKEUPCLOCK_CK_SPRE_16BITS
);


这个函数写在rtc初始化里,这个函数之中的一参数是设置唤醒时间。1800s是半小时唤醒一次。



问题是:
RTC初始化只设置一次,后续就不用设置,发现开始跑这一次的初始化程序的时候,它竟然会先跑完这1800s,然后才进入进入下面的程序(进入待机)。
这样太浪费能源了,怎样让它一开始不跑这1800s,是不是实现不了?

我要是设置个几小时,这先是工作状态跑完这初始化的几小时,还没进入待机就没电了。。。。。。


作者: 1692483014    时间: 2020-8-6 13:30
你这个问题要问几遍?我看你发的帖子至少也三个了吧?还没搞明白?言归正传:你理解错了,这个函数并非阻塞执行,不是设置1800,就要等这么长时间再走下面的程序,而是立即执行下面的程序,但如果你下面让芯片睡眠了,那么1800之后,会产生相应配置的RTC中断,CPU内核则会被唤醒一次。如果执行起来不是这样,那么一定是你的程序哪里出了问题。
作者: wuhai5    时间: 2020-8-6 15:05
1692483014 发表于 2020-8-6 13:30
你这个问题要问几遍?我看你发的帖子至少也三个了吧?还没搞明白?言归正传:你理解错了,这个函数并非阻塞 ...

哈哈,是关于这个函数的不同三个问题,好的感谢感谢,
我以为它会跑完了1800后才走,那不是这样的话就好说了。
才注意到问题都是你回答的,十分感谢嘿嘿
作者: ⑧月⑥    时间: 2020-12-9 09:12
应该是1799秒
作者: Convict    时间: 2021-8-25 13:58
⑧月⑥ 发表于 2020-12-9 09:12
应该是1799秒

就是1800呀,只是从0计数到1799吧

作者: 914110742    时间: 2021-9-23 15:59
请问下这个函数执行时会重新装载计数值吗  我用其他的外部中断退出低功耗后 再次进入低功耗后 是不是意味着RTC唤醒时间被重置了
作者: shumivan    时间: 2021-9-23 16:19
定时器唤醒,没用这个HAL做过。但是原理一样,都是该语句即刻执行。如果是休眠或者睡眠模式,那么就时间到了自动唤醒




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1