Rev 56 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 56 | Rev 61 | ||
|---|---|---|---|
| Line 324... | Line 324... | ||
| 324 | hrtc->Instance->PRER = (uint32_t)(hrtc->Init.SynchPrediv); |
324 | hrtc->Instance->PRER = (uint32_t)(hrtc->Init.SynchPrediv); |
| 325 | hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << 16U); |
325 | hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << 16U); |
| 326 | 326 | ||
| 327 | /* Exit Initialization mode */ |
327 | /* Exit Initialization mode */ |
| 328 | hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT; |
328 | hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT; |
| - | 329 | #if defined (RTC_CR_BYPSHAD) |
|
| - | 330 | /* If CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */ |
|
| - | 331 | if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET) |
|
| - | 332 | #endif /* RTC_CR_BYPSHAD */ |
|
| - | 333 | { |
|
| - | 334 | if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK) |
|
| - | 335 | { |
|
| - | 336 | /* Enable the write protection for RTC registers */ |
|
| - | 337 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
|
| - | 338 | ||
| - | 339 | hrtc->State = HAL_RTC_STATE_ERROR; |
|
| 329 | 340 | ||
| - | 341 | return HAL_ERROR; |
|
| - | 342 | } |
|
| - | 343 | } |
|
| 330 | hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_ALARMOUTTYPE; |
344 | hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_ALARMOUTTYPE; |
| 331 | hrtc->Instance->TAFCR |= (uint32_t)(hrtc->Init.OutPutType); |
345 | hrtc->Instance->TAFCR |= (uint32_t)(hrtc->Init.OutPutType); |
| 332 | 346 | ||
| 333 | /* Enable the write protection for RTC registers */ |
347 | /* Enable the write protection for RTC registers */ |
| 334 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
348 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
| Line 794... | Line 808... | ||
| 794 | else |
808 | else |
| 795 | { |
809 | { |
| 796 | /* Set the RTC_TR register */ |
810 | /* Set the RTC_TR register */ |
| 797 | hrtc->Instance->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK); |
811 | hrtc->Instance->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK); |
| 798 | 812 | ||
| 799 | /* Clear the bits to be configured */ |
813 | /* Clear the bits to be configured (Deprecated. Use HAL_RTC_DST_xxx functions instead) */ |
| 800 | hrtc->Instance->CR &= ((uint32_t)~RTC_CR_BKP); |
814 | hrtc->Instance->CR &= ((uint32_t)~RTC_CR_BKP); |
| 801 | 815 | ||
| 802 | /* Configure the RTC_CR register */ |
816 | /* Configure the RTC_CR register (Deprecated. Use HAL_RTC_DST_xxx functions instead) */ |
| 803 | hrtc->Instance->CR |= (uint32_t)(sTime->DayLightSaving | sTime->StoreOperation); |
817 | hrtc->Instance->CR |= (uint32_t)(sTime->DayLightSaving | sTime->StoreOperation); |
| 804 | 818 | ||
| 805 | /* Exit Initialization mode */ |
819 | /* Exit Initialization mode */ |
| 806 | hrtc->Instance->ISR &= ((uint32_t)~RTC_ISR_INIT); |
820 | hrtc->Instance->ISR &= ((uint32_t)~RTC_ISR_INIT); |
| 807 | 821 | ||
| Line 1029... | Line 1043... | ||
| 1029 | } |
1043 | } |
| 1030 | return HAL_OK; |
1044 | return HAL_OK; |
| 1031 | } |
1045 | } |
| 1032 | 1046 | ||
| 1033 | /** |
1047 | /** |
| - | 1048 | * @brief Daylight Saving Time, adda one hour to the calendar in one |
|
| - | 1049 | * single operation without going through the initialization procedure. |
|
| - | 1050 | * @param hrtc pointer to a RTC_HandleTypeDef structure that contains |
|
| - | 1051 | * the configuration information for RTC. |
|
| - | 1052 | * @retval None |
|
| - | 1053 | */ |
|
| - | 1054 | void HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc) |
|
| - | 1055 | { |
|
| - | 1056 | __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc); |
|
| - | 1057 | SET_BIT(hrtc->Instance->CR, RTC_CR_ADD1H); |
|
| - | 1058 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
|
| - | 1059 | } |
|
| - | 1060 | ||
| - | 1061 | /** |
|
| - | 1062 | * @brief Daylight Saving Time, subtracts one hour from the calendar in one |
|
| - | 1063 | * single operation without going through the initialization procedure. |
|
| - | 1064 | * @param hrtc pointer to a RTC_HandleTypeDef structure that contains |
|
| - | 1065 | * the configuration information for RTC. |
|
| - | 1066 | * @retval None |
|
| - | 1067 | */ |
|
| - | 1068 | void HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc) |
|
| - | 1069 | { |
|
| - | 1070 | __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc); |
|
| - | 1071 | SET_BIT(hrtc->Instance->CR, RTC_CR_SUB1H); |
|
| - | 1072 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
|
| - | 1073 | } |
|
| - | 1074 | ||
| - | 1075 | /** |
|
| - | 1076 | * @brief Daylight Saving Time, sets the store operation bit. |
|
| - | 1077 | * @note It can be used by the software in order to memorize the DST status. |
|
| - | 1078 | * @param hrtc pointer to a RTC_HandleTypeDef structure that contains |
|
| - | 1079 | * the configuration information for RTC. |
|
| - | 1080 | * @retval None |
|
| - | 1081 | */ |
|
| - | 1082 | void HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc) |
|
| - | 1083 | { |
|
| - | 1084 | __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc); |
|
| - | 1085 | SET_BIT(hrtc->Instance->CR, RTC_CR_BKP); |
|
| - | 1086 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
|
| - | 1087 | } |
|
| - | 1088 | ||
| - | 1089 | /** |
|
| - | 1090 | * @brief Daylight Saving Time, clears the store operation bit. |
|
| - | 1091 | * @param hrtc pointer to a RTC_HandleTypeDef structure that contains |
|
| - | 1092 | * the configuration information for RTC. |
|
| - | 1093 | * @retval None |
|
| - | 1094 | */ |
|
| - | 1095 | void HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc) |
|
| - | 1096 | { |
|
| - | 1097 | __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc); |
|
| - | 1098 | CLEAR_BIT(hrtc->Instance->CR, RTC_CR_BKP); |
|
| - | 1099 | __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); |
|
| - | 1100 | } |
|
| - | 1101 | ||
| - | 1102 | /** |
|
| - | 1103 | * @brief Daylight Saving Time, reads the store operation bit. |
|
| - | 1104 | * @param hrtc RTC handle |
|
| - | 1105 | * @retval operation see RTC_StoreOperation_Definitions |
|
| - | 1106 | */ |
|
| - | 1107 | uint32_t HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc) |
|
| - | 1108 | { |
|
| - | 1109 | return READ_BIT(hrtc->Instance->CR, RTC_CR_BKP); |
|
| - | 1110 | } |
|
| - | 1111 | ||
| - | 1112 | /** |
|
| 1034 | * @} |
1113 | * @} |
| 1035 | */ |
1114 | */ |
| 1036 | 1115 | ||
| 1037 | /** @addtogroup RTC_Exported_Functions_Group3 |
1116 | /** @addtogroup RTC_Exported_Functions_Group3 |
| 1038 | * @brief RTC Alarm functions |
1117 | * @brief RTC Alarm functions |
| Line 1722... | Line 1801... | ||
| 1722 | */ |
1801 | */ |
| 1723 | HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc) |
1802 | HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc) |
| 1724 | { |
1803 | { |
| 1725 | uint32_t tickstart; |
1804 | uint32_t tickstart; |
| 1726 | 1805 | ||
| 1727 | #if defined(STM32L100xBA) || defined (STM32L151xBA) || defined (STM32L152xBA) || defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) |
1806 | #if defined (RTC_CR_BYPSHAD) |
| 1728 | /* If RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */ |
1807 | /* If RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */ |
| 1729 | if ((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET) |
1808 | if ((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET) |
| 1730 | #endif /* STM32L100xBA || STM32L151xBA || STM32L152xBA || STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ |
1809 | #endif /* RTC_CR_BYPSHAD */ |
| 1731 | { |
1810 | { |
| 1732 | /* Clear RSF flag */ |
1811 | /* Clear RSF flag */ |
| 1733 | hrtc->Instance->ISR &= (uint32_t)RTC_RSF_MASK; |
1812 | hrtc->Instance->ISR &= (uint32_t)RTC_RSF_MASK; |
| 1734 | 1813 | ||
| 1735 | tickstart = HAL_GetTick(); |
1814 | tickstart = HAL_GetTick(); |