完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
相关推荐
1 条评论
22个回答
|
|
|
|
|
|
|
|
|
感谢你的回复。 我看了你说的帖子,我的问题与帖子中的有差别。我这边 stop 模式用的是 rtc 闹钟唤醒。 通过HAL_RTC_SetAlarm_IT 函数设定醒来的时刻,并没有使用wakeup 。目前就是有时候醒不来 |
|
|
|
|
|
楼主,建议加个可以通过外部唤醒的,如果唤醒不的情况下,外部唤醒后,看一下时钟是否已经停止,看一下真实的时钟。
|
|
|
|
|
|
|
|
|
|
|
|
如果时钟正常,那就看一下时钟alarm寄存器是否是正确的。是否因为设置错误导致未唤醒。
|
|
|
|
|
|
配置好 rtc后,alarm通过库函数 HAL_RTC_SetAlarm_IT 设定,寄存器操作由库函数替代了
|
|
|
|
|
|
可能是因为你算法的问题,楼主计算完时间后,最好打印一下,是否是得到的时间。下面这句话我不是很理解:
uint8_t minuteMaxBit = (60/minuteInterval) - 1; |
|
|
|
|
TOPCB 发表于 2019-1-8 08:51 解释一下: 1.设置时间的格式 我选择的是RTC_FORMAT_BIN ,所以分钟和秒数 值范围 0-59 ,小时数是 0-23 2.现在假设我需要每隔 minuteInterval(假设是10) 时刻进行唤醒, 比如现在时刻是 15:13分,按此间隔,我需要在 15:20 15:30 ....16:00 ....这些时刻唤醒。 按10分钟间隔算,一小时有 6次,比如15:00 ,15:10 , 15:20,15:30,15:40,15:50 (次数可以看成是 0-5,最大数是5),这里的minuteMaxBit 就是最大次数,到了最大次数,下一次唤醒 分钟位就设为0,时钟位需要进位了 |
|
|
|
|
|
嗯。怀疑还是算法算错时间的问题,楼主可以加个打印,打印一下每次得到的唤醒时间,看一下每次不能唤醒的时候,alarm设置的时刻。
|
|
|
|
|
|
|
|
|
|
|
|
楼主,下面这几句话是不是可以只保留开启中断的就可以了?
if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORMAT_BIN) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } if(HAL_RTC_SetAlarm_IT(&hrtc,&sAlarm,RTC_FORMAT_BIN) != HAL_OK) { /* Initialization Error */ Error_Handler(); } |
|
|
|
|
|
是的目前的程序里只保留了HAL_RTC_SetAlarm_IT 这一个函数
|
|
|
|
|
|
这个问题,我感觉还是得冲RTCalarm设置以后,是否成功找了。
|
|
|
|
|
|
目前还没有找到真正的问题,先用一个IWDG定期唤醒。测了几天,到是没有死机。但是耗电会增加
|
|
|
|
|
|
|
|
|
|
|
|
你说的有时唤不醒是所有板都 这样吗? 另外,所谓不唤醒发生后,后续是否一直不再唤醒? 如果说只是偶尔不唤醒,真的需要好好检查下程序代码,数据运算和赋值过程中是否有问题。
比方下面这句会不会有问题? minuteBit++; sAlarm.AlarmTime.Minutes = minuteBit*minuteInterval; |
|
|
|
|
|
查看一下时间到了,有没有进RTC中断啊 ,
|
|
|
|
|
huazhe 发表于 2019-1-8 10:52 你好! 唤醒失败的板子,后续一直睡眠,除非用外部中断触发。 这种现象的板子,具有随机和普遍性。 我采用喂狗后,唤不醒就重启了。这是个问题啊 下面是昨天运行的一段日志: time now :19时43分04秒 HAL_IWDG_Refresh ! //喂狗时刻 Rset B :Send data DelayTimeout Time:19时43分24秒 // 设置alarmB 用来唤醒喂狗,设置完成后立即进入stop模式 Client Mode VERSION 1.30.. //设备又一次重启,重启后立即喂狗 ,查看下面的时刻是 19时43分31秒,alarmB并没有醒来喂狗,导致超时 time now :19时43分31秒 HAL_IWDG_Refresh ! time now :19时43分31秒 ThreadClientOnlineRequest delaytime .... randDelay = 939 sum =21 Rset B :Send data DelayTimeout Time:19时43分52秒 |
|
|
|
|
|
我今天就来修改看看 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
426 浏览 1 评论
961 浏览 0 评论
840 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4733 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3532 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 10:12 , Processed in 1.129212 second(s), Total 86, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2637