找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5698|回复: 6
打印 上一主题 下一主题
收起左侧

HAL_RTCEx_SetWakeUpTimer_IT函数的问题

[复制链接]
回帖奖励 2 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:504281 发表于 2020-8-6 10:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HAL_RTCEx_SetWakeUpTimer_IT
(&
hrtc
,
1800
,
RTC_WAKEUPCLOCK_CK_SPRE_16BITS
);


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



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

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:504281 发表于 2020-8-6 15:05 | 只看该作者
1692483014 发表于 2020-8-6 13:30
你这个问题要问几遍?我看你发的帖子至少也三个了吧?还没搞明白?言归正传:你理解错了,这个函数并非阻塞 ...

哈哈,是关于这个函数的不同三个问题,好的感谢感谢,
我以为它会跑完了1800后才走,那不是这样的话就好说了。
才注意到问题都是你回答的,十分感谢嘿嘿
回复

使用道具 举报

地板
ID:486503 发表于 2020-12-9 09:12 | 只看该作者
应该是1799秒
回复

使用道具 举报

5#
ID:774298 发表于 2021-8-25 13:58 | 只看该作者

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

使用道具 举报

6#
ID:937445 发表于 2021-9-23 15:59 | 只看该作者
请问下这个函数执行时会重新装载计数值吗  我用其他的外部中断退出低功耗后 再次进入低功耗后 是不是意味着RTC唤醒时间被重置了
回复

使用道具 举报

7#
ID:81196 发表于 2021-9-23 16:19 | 只看该作者
定时器唤醒,没用这个HAL做过。但是原理一样,都是该语句即刻执行。如果是休眠或者睡眠模式,那么就时间到了自动唤醒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表