2019-07-14 14:44发布
TOPCB 发表于 2019-1-8 08:51 可能是因为你算法的问题,楼主计算完时间后,最好打印一下,是否是得到的时间。下面这句话我不是很理解: uint8_t minuteMaxBit = (60/minuteInterval) - 1;
最多设置5个标签!
解释一下:
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,时钟位需要进位了
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
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();
}
一周热门 更多>