@@ -98,6 +98,54 @@ static inline int _log2(int x)
98
98
99
99
/* Exported functions --------------------------------------------------------*/
100
100
101
+ /* HAL MSP function used for RTC_Init */
102
+ void HAL_RTC_MspInit (RTC_HandleTypeDef * rtcHandle )
103
+ {
104
+ #if defined(RTC_SCR_CSSRUF )
105
+ if (rtcHandle -> Instance == RTC ) {
106
+ /* In BINARY mode (MIX or ONLY), set the SSR Underflow interrupt */
107
+ if (rtcHandle -> Init .BinMode != RTC_BINARY_NONE ) {
108
+ #if defined(STM32WLxx )
109
+ /* Only the STM32WLxx series has a TAMP_STAMP_LSECSS_SSRU_IRQn */
110
+ if (HAL_RTCEx_SetSSRU_IT (rtcHandle ) != HAL_OK ) {
111
+ Error_Handler ();
112
+ }
113
+ /* Give init value for the RtcFeatures enable */
114
+ rtcHandle -> IsEnabled .RtcFeatures = 0 ;
115
+
116
+ /* RTC interrupt Init */
117
+ HAL_NVIC_SetPriority (TAMP_STAMP_LSECSS_SSRU_IRQn , 0 , 0 );
118
+ HAL_NVIC_EnableIRQ (TAMP_STAMP_LSECSS_SSRU_IRQn );
119
+ #else
120
+ /* The STM32U5, STM32H5, STM32L4plus have common RTC interrupt and a SSRU flag */
121
+ __HAL_RTC_SSRU_ENABLE_IT (rtcHandle , RTC_IT_SSRU );
122
+ #endif /* STM32WLxx */
123
+ }
124
+ }
125
+ #else /* RTC_SCR_CSSRUF */
126
+ UNUSED (rtcHandle );
127
+ #endif /* RTC_SCR_CSSRUF */
128
+ /* RTC_Alarm_IRQn is enabled when enabling Alarm */
129
+ }
130
+
131
+ void HAL_RTC_MspDeInit (RTC_HandleTypeDef * rtcHandle )
132
+ {
133
+
134
+ if (rtcHandle -> Instance == RTC ) {
135
+ /* Peripheral clock disable */
136
+ __HAL_RCC_RTC_DISABLE ();
137
+ #ifdef __HAL_RCC_RTCAPB_CLK_DISABLE
138
+ __HAL_RCC_RTCAPB_CLK_DISABLE ();
139
+ #endif
140
+ /* RTC interrupt Deinit */
141
+ #if defined(STM32WLxx )
142
+ /* Only the STM32WLxx series has a TAMP_STAMP_LSECSS_SSRU_IRQn */
143
+ HAL_NVIC_DisableIRQ (TAMP_STAMP_LSECSS_SSRU_IRQn );
144
+ #endif /* STM32WLxx */
145
+ HAL_NVIC_DisableIRQ (RTC_Alarm_IRQn );
146
+ }
147
+ }
148
+
101
149
/**
102
150
* @brief Get pointer to RTC_HandleTypeDef
103
151
* @param None
0 commit comments