新手上路
- 积分
- 47
- 金钱
- 47
- 注册时间
- 2015-3-25
- 在线时间
- 3 小时
|
最近调试RTC ALARM功能,发现闹钟只能进中断一次,下次就不进中断了,中断里也重新设置了闹钟。
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{
//uint8_t Hours,Minutes;
uint8_t offset = 0;
RTC_AlarmTypeDef sAlarm = {0};
//RTC_TimeTypeDef sTime = {0};
/*if(HAL_OK == HAL_RTC_GetTime(hrtc,&sTime,RTC_FORMAT_BIN))
{
Hours = sTime.Hours;
Minutes = sTime.Minutes;
}*/
ALARM_FLG = 1;
sAlarm.AlarmTime.Hours = 0x08;
sAlarm.AlarmTime.Minutes = 0x32;
sAlarm.AlarmTime.Seconds = 0x0;
sAlarm.AlarmTime.SubSeconds = 0x0;
sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;
sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;
sAlarm.AlarmDateWeekDay = 0x1;
sAlarm.Alarm = RTC_ALARM_A;
if (HAL_RTC_SetAlarm_IT(hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
offset += 2;
}
|
|