RTC TimeStamp and Tamper functions.
More...
RTC TimeStamp and Tamper functions.
===============================================================================
##### RTC TimeStamp and Tamper functions #####
===============================================================================
[..] This section provides functions allowing to configure TimeStamp feature
◆ HAL_RTCEx_DeactivateInternalTimeStamp()
Deactivate Internal TimeStamp.
- Parameters
-
- Return values
-
Definition at line 377 of file stm32l4xx_hal_rtc_ex.c.
388 __HAL_RTC_INTERNAL_TIMESTAMP_DISABLE(hrtc);
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
◆ HAL_RTCEx_DeactivateTimeStamp()
Deactivate TimeStamp.
- Parameters
-
- Return values
-
Definition at line 309 of file stm32l4xx_hal_rtc_ex.c.
322 __HAL_RTC_TIMESTAMP_DISABLE_IT(hrtc, RTC_IT_TS);
325 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
328 hrtc->
Instance->CR = (uint32_t)tmpreg;
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
◆ HAL_RTCEx_GetTimeStamp()
Get the RTC TimeStamp value.
- Parameters
-
| hrtc | RTC handle |
| sTimeStamp | Pointer to Time structure |
| sTimeStampDate | Pointer to Date structure |
| Format | specifies the format of the entered parameters. This parameter can be one of the following values:
- RTC_FORMAT_BIN: Binary data format
- RTC_FORMAT_BCD: BCD data format
|
- Return values
-
Definition at line 412 of file stm32l4xx_hal_rtc_ex.c.
414 uint32_t tmptime, tmpdate;
420 tmptime = (uint32_t)(hrtc->
Instance->TSTR & RTC_TR_RESERVED_MASK);
421 tmpdate = (uint32_t)(hrtc->
Instance->TSDR & RTC_DR_RESERVED_MASK);
424 sTimeStamp->
Hours = (uint8_t)((tmptime & (RTC_TSTR_HT | RTC_TSTR_HU)) >> RTC_TSTR_HU_Pos);
425 sTimeStamp->
Minutes = (uint8_t)((tmptime & (RTC_TSTR_MNT | RTC_TSTR_MNU)) >> RTC_TSTR_MNU_Pos);
426 sTimeStamp->
Seconds = (uint8_t)((tmptime & (RTC_TSTR_ST | RTC_TSTR_SU)) >> RTC_TSTR_SU_Pos);
427 sTimeStamp->
TimeFormat = (uint8_t)((tmptime & (RTC_TSTR_PM)) >> RTC_TSTR_PM_Pos);
431 sTimeStampDate->
Year = 0U;
432 sTimeStampDate->
Month = (uint8_t)((tmpdate & (RTC_TSDR_MT | RTC_TSDR_MU)) >> RTC_TSDR_MU_Pos);
433 sTimeStampDate->
Date = (uint8_t)((tmpdate & (RTC_TSDR_DT | RTC_TSDR_DU)) >> RTC_TSDR_DU_Pos);
434 sTimeStampDate->
WeekDay = (uint8_t)((tmpdate & (RTC_TSDR_WDU)) >> RTC_TSDR_WDU_Pos);
437 if (Format == RTC_FORMAT_BIN)
451 __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_ITSF);
452 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
uint8_t RTC_Bcd2ToByte(uint8_t Value)
Convert from 2 digit BCD to Binary.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_RTCEx_PollForTimeStampEvent()
| HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
Timeout |
|
) |
| |
Handle TimeStamp polling request.
- Parameters
-
| hrtc | RTC handle |
| Timeout | Timeout duration |
- Return values
-
Definition at line 641 of file stm32l4xx_hal_rtc_ex.c.
645 while (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == 0U)
647 if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != 0U)
650 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
658 if (Timeout != HAL_MAX_DELAY)
660 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
__IO HAL_RTCStateTypeDef State
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
◆ HAL_RTCEx_SetInternalTimeStamp()
Set Internal TimeStamp.
- Note
- This API must be called before enabling the internal TimeStamp feature.
- Parameters
-
- Return values
-
Definition at line 347 of file stm32l4xx_hal_rtc_ex.c.
358 __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE(hrtc);
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
◆ HAL_RTCEx_SetTimeStamp()
| HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
TimeStampEdge, |
|
|
uint32_t |
RTC_TimeStampPin |
|
) |
| |
Set TimeStamp.
- Note
- This API must be called before enabling the TimeStamp feature.
- Parameters
-
| hrtc | RTC handle |
| TimeStampEdge | Specifies the pin edge on which the TimeStamp is activated. This parameter can be one of the following values:
- RTC_TIMESTAMPEDGE_RISING: the Time stamp event occurs on the rising edge of the related pin.
- RTC_TIMESTAMPEDGE_FALLING: the Time stamp event occurs on the falling edge of the related pin.
|
| RTC_TimeStampPin | specifies the RTC TimeStamp Pin. This parameter can be one of the following values:
- RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC TimeStamp Pin. The RTC TimeStamp Pin is per default PC13, but for reasons of compatibility, this parameter is required.
|
- Return values
-
Definition at line 198 of file stm32l4xx_hal_rtc_ex.c.
207 UNUSED(RTC_TimeStampPin);
215 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
217 tmpreg |= TimeStampEdge;
223 hrtc->
Instance->CR = (uint32_t)tmpreg;
225 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_RTCEx_SetTimeStamp_IT()
| HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
TimeStampEdge, |
|
|
uint32_t |
RTC_TimeStampPin |
|
) |
| |
Set TimeStamp with Interrupt.
- Note
- This API must be called before enabling the TimeStamp feature.
- Parameters
-
| hrtc | RTC handle |
| TimeStampEdge | Specifies the pin edge on which the TimeStamp is activated. This parameter can be one of the following values:
- RTC_TIMESTAMPEDGE_RISING: the Time stamp event occurs on the rising edge of the related pin.
- RTC_TIMESTAMPEDGE_FALLING: the Time stamp event occurs on the falling edge of the related pin.
|
| RTC_TimeStampPin | Specifies the RTC TimeStamp Pin. This parameter can be one of the following values:
- RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC TimeStamp Pin. The RTC TimeStamp Pin is per default PC13, but for reasons of compatibility, this parameter is required.
|
- Return values
-
Definition at line 257 of file stm32l4xx_hal_rtc_ex.c.
266 UNUSED(RTC_TimeStampPin);
274 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
276 tmpreg |= TimeStampEdge;
282 hrtc->
Instance->CR = (uint32_t)tmpreg;
284 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
287 __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc, RTC_IT_TS);
290 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
291 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_RTCEx_TamperTimeStampIRQHandler()
Handle TimeStamp interrupt request.
- Parameters
-
- Return values
-
Definition at line 464 of file stm32l4xx_hal_rtc_ex.c.
471 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
473 if ((hrtc->
Instance->MISR & RTC_MISR_TSMF) != 0u)
475 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 486 uint32_t tmp = tamp->MISR;
491 #if defined(RTC_TAMPER1_SUPPORT) 493 if ((tmp & RTC_TAMPER_1) == RTC_TAMPER_1)
495 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 506 if ((tmp & RTC_TAMPER_2) == RTC_TAMPER_2)
508 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 517 #if defined(RTC_TAMPER3_SUPPORT) 519 if ((tmp & RTC_TAMPER_3) == RTC_TAMPER_3)
521 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
void(* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc)
__IO HAL_RTCStateTypeDef State
void(* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
void(* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
TimeStamp callback.
void(* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc)
◆ HAL_RTCEx_TimeStampEventCallback()