Set the specified RTC Alarm with Interrupt.
1189 uint32_t tmpreg, subsecondtmpreg;
1204 if (Format == RTC_FORMAT_BIN)
1206 if ((hrtc->
Instance->CR & RTC_CR_FMT) != 0U)
1238 if ((hrtc->
Instance->CR & RTC_CR_FMT) != 0U)
1252 #ifdef USE_FULL_ASSERT 1263 tmpreg = (((uint32_t)(sAlarm->
AlarmTime.
Hours) << RTC_ALRMAR_HU_Pos) | \
1278 if (sAlarm->
Alarm == RTC_ALARM_A)
1281 __HAL_RTC_ALARMA_DISABLE(hrtc);
1284 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
1286 #if defined (RTC_FLAG_ALRAWF) 1289 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
1291 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1306 hrtc->
Instance->ALRMAR = (uint32_t)tmpreg;
1308 hrtc->
Instance->ALRMASSR = subsecondtmpreg;
1310 __HAL_RTC_ALARMA_ENABLE(hrtc);
1312 __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRA);
1317 __HAL_RTC_ALARMB_DISABLE(hrtc);
1320 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
1322 #if defined (RTC_FLAG_ALRBWF) 1325 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
1327 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1342 hrtc->
Instance->ALRMBR = (uint32_t)tmpreg;
1344 hrtc->
Instance->ALRMBSSR = subsecondtmpreg;
1346 __HAL_RTC_ALARMB_ENABLE(hrtc);
1348 __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRB);
1352 __HAL_RTC_ALARM_EXTI_ENABLE_IT();
1353 __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();
RTC_TimeTypeDef AlarmTime
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
uint8_t RTC_ByteToBcd2(uint8_t Value)
Convert a 2 digit decimal to BCD format.
uint32_t AlarmSubSecondMask
uint8_t RTC_Bcd2ToByte(uint8_t Value)
Convert from 2 digit BCD to Binary.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
uint32_t AlarmDateWeekDaySel