STM32L151 stop模式rtc闹钟唤醒不稳定

2019-07-14 14:44发布

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
yanan101114
1楼-- · 2019-07-15 21:03
TOPCB 发表于 2019-1-8 08:51
可能是因为你算法的问题,楼主计算完时间后,最好打印一下,是否是得到的时间。下面这句话我不是很理解:
uint8_t minuteMaxBit = (60/minuteInterval) - 1;

解释一下:
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,时钟位需要进位了
TOPCB
2楼-- · 2019-07-16 01:15
 精彩回答 2  元偷偷看……
yanan101114
3楼-- · 2019-07-16 06:03
你好,下面log是昨天追了一天后未唤醒的信息。
time now :20时50分36秒  ThreadSendSensorData Client has send sensor data Success!!!
Rset B :Next turn time 2018年05月23日20时55分05秒
time now :20时50分36秒  ThreadSendSensorData Reset AlarmB to make sure can Wake UP...

时刻是 20:50:36 alarmB 设定的唤醒时间是 20:55:05 ,但是最终程序并没有唤醒
可以加微信请教啊 15601756551
TOPCB
4楼-- · 2019-07-16 11:28
楼主,下面这几句话是不是可以只保留开启中断的就可以了?
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();
}
yanan101114
5楼-- · 2019-07-16 16:26
是的目前的程序里只保留了HAL_RTC_SetAlarm_IT 这一个函数
TOPCB
6楼-- · 2019-07-16 17:09
这个问题,我感觉还是得冲RTCalarm设置以后,是否成功找了。

一周热门 更多>