@@ -96,7 +96,7 @@ void STM32RTC::begin(bool resetTime, Hour_Format format)
9696 _alarmSubSeconds = _subSeconds;
9797 _alarmPeriod = _hoursPeriod;
9898 }
99- #ifdef RTC_ALARM_B
99+ #if defined(ALARM_B_AVAILABLE)
100100 syncAlarmTime (ALARM_B );
101101 if (!IS_RTC_DATE (_alarmBDay)) {
102102 // Use current time to init alarm members,
@@ -173,13 +173,13 @@ STM32RTC::Binary_Mode STM32RTC::getBinaryMode(void)
173173 */
174174void STM32RTC::setBinaryMode (Binary_Mode mode)
175175{
176- #if defined(RTC_BINARY_NONE )
176+ #if defined(LL_RTC_BINARY_NONE )
177177 _mode = mode;
178178#else
179179#warning "only BCD mode is supported"
180180 UNUSED (mode);
181181 _mode = MODE_BCD ;
182- #endif /* RTC_BINARY_NONE */
182+ #endif /* LL_RTC_BINARY_NONE */
183183}
184184
185185/* *
@@ -224,7 +224,7 @@ void STM32RTC::setPrediv(uint32_t predivA, uint32_t predivS)
224224 */
225225void STM32RTC::enableAlarm (Alarm_Match match, Alarm name)
226226{
227- #ifdef RTC_ALARM_B
227+ #if defined(ALARM_B_AVAILABLE)
228228 if (name == ALARM_B ) {
229229 _alarmBMatch = match;
230230 } else
@@ -236,7 +236,7 @@ void STM32RTC::enableAlarm(Alarm_Match match, Alarm name)
236236 }
237237 switch (match) {
238238 case MATCH_OFF :
239- #ifdef RTC_ALARM_B
239+ #if defined(ALARM_B_AVAILABLE)
240240 if (name == ALARM_B ) {
241241 RTC_StopAlarm (::ALARM_B );
242242 } else
@@ -247,7 +247,7 @@ void STM32RTC::enableAlarm(Alarm_Match match, Alarm name)
247247 break ;
248248 case MATCH_SUBSEC :
249249 /* force _alarmday to 0 to go to the right alarm config in MIX mode */
250- #ifdef RTC_ALARM_B
250+ #if defined(ALARM_B_AVAILABLE)
251251 if (name == ALARM_B ) {
252252 RTC_StartAlarm (::ALARM_B , 0 , 0 , 0 , 0 ,
253253 _alarmBSubSeconds, (_alarmBPeriod == AM ) ? HOUR_AM : HOUR_PM ,
@@ -266,7 +266,7 @@ void STM32RTC::enableAlarm(Alarm_Match match, Alarm name)
266266 case MATCH_HHMMSS :
267267 case MATCH_MMSS :
268268 case MATCH_SS :
269- #ifdef RTC_ALARM_B
269+ #if defined(ALARM_B_AVAILABLE)
270270 if (name == ALARM_B ) {
271271 RTC_StartAlarm (::ALARM_B , _alarmBDay, _alarmBHours, _alarmBMinutes, _alarmBSeconds,
272272 _alarmBSubSeconds, (_alarmBPeriod == AM ) ? HOUR_AM : HOUR_PM ,
@@ -538,7 +538,7 @@ uint32_t STM32RTC::getAlarmSubSeconds(Alarm name)
538538{
539539 uint32_t alarmSubSeconds = 0 ;
540540 syncAlarmTime (name);
541- #ifdef RTC_ALARM_B
541+ #if defined(ALARM_B_AVAILABLE)
542542 if (name == ALARM_B ) {
543543 alarmSubSeconds = _alarmBSubSeconds;
544544 } else
@@ -559,7 +559,7 @@ uint8_t STM32RTC::getAlarmSeconds(Alarm name)
559559{
560560 uint8_t alarmSeconds = 0 ;
561561 syncAlarmTime (name);
562- #ifdef RTC_ALARM_B
562+ #if defined(ALARM_B_AVAILABLE)
563563 if (name == ALARM_B ) {
564564 alarmSeconds = _alarmBSeconds;
565565 } else
@@ -580,7 +580,7 @@ uint8_t STM32RTC::getAlarmMinutes(Alarm name)
580580{
581581 uint8_t alarmMinutes = 0 ;
582582 syncAlarmTime (name);
583- #ifdef RTC_ALARM_B
583+ #if defined(ALARM_B_AVAILABLE)
584584 if (name == ALARM_B ) {
585585 alarmMinutes = _alarmBMinutes;
586586 } else
@@ -614,7 +614,7 @@ uint8_t STM32RTC::getAlarmHours(AM_PM *period, Alarm name)
614614{
615615 uint8_t alarmHours = 0 ;
616616 syncAlarmTime (name);
617- #ifdef RTC_ALARM_B
617+ #if defined(ALARM_B_AVAILABLE)
618618 if (name == ALARM_B ) {
619619 if (period != nullptr ) {
620620 *period = _alarmBPeriod;
@@ -641,7 +641,7 @@ uint8_t STM32RTC::getAlarmDay(Alarm name)
641641{
642642 uint8_t alarmDay = 0 ;
643643 syncAlarmTime (name);
644- #ifdef RTC_ALARM_B
644+ #if defined(ALARM_B_AVAILABLE)
645645 if (name == ALARM_B ) {
646646 alarmDay = _alarmBDay;
647647 } else
@@ -892,11 +892,11 @@ void STM32RTC::setDate(uint8_t weekDay, uint8_t day, uint8_t month, uint8_t year
892892 */
893893void STM32RTC::setAlarmSubSeconds (uint32_t subSeconds, Alarm name)
894894{
895- #ifndef RTC_ALARM_B
895+ #if !defined( RTC_ALARM_B) && !defined(USE_HALV2_DRIVER)
896896 UNUSED (name);
897897#endif
898898 if ((_mode == MODE_BIN ) || (subSeconds < 1000 )) {
899- #ifdef RTC_ALARM_B
899+ #if defined(ALARM_B_AVAILABLE)
900900 if (name == ALARM_B ) {
901901 _alarmBSubSeconds = subSeconds;
902902 } else
@@ -917,7 +917,7 @@ void STM32RTC::setAlarmSubSeconds(uint32_t subSeconds, Alarm name)
917917void STM32RTC::setAlarmSeconds (uint8_t seconds, Alarm name)
918918{
919919 if (seconds < 60 ) {
920- #ifdef RTC_ALARM_B
920+ #if defined(ALARM_B_AVAILABLE)
921921 if (name == ALARM_B ) {
922922 _alarmBSeconds = seconds;
923923 } else
@@ -940,7 +940,7 @@ void STM32RTC::setAlarmSeconds(uint8_t seconds, Alarm name)
940940void STM32RTC::setAlarmMinutes (uint8_t minutes, Alarm name)
941941{
942942 if (minutes < 60 ) {
943- #ifdef RTC_ALARM_B
943+ #if defined(ALARM_B_AVAILABLE)
944944 if (name == ALARM_B ) {
945945 _alarmBMinutes = minutes;
946946 } else
@@ -976,7 +976,7 @@ void STM32RTC::setAlarmHours(uint8_t hours, Alarm name)
976976void STM32RTC::setAlarmHours (uint8_t hours, AM_PM period, Alarm name)
977977{
978978 if (hours < 24 ) {
979- #ifdef RTC_ALARM_B
979+ #if defined(ALARM_B_AVAILABLE)
980980 if (name == ALARM_B ) {
981981 _alarmBHours = hours;
982982 if (_format == HOUR_12 ) {
@@ -1063,7 +1063,7 @@ void STM32RTC::setAlarmTime(uint8_t hours, uint8_t minutes, uint8_t seconds, uin
10631063void STM32RTC::setAlarmDay (uint8_t day, Alarm name)
10641064{
10651065 if ((day >= 1 ) && (day <= 31 )) {
1066- #ifdef RTC_ALARM_B
1066+ #if defined(ALARM_B_AVAILABLE)
10671067 if (name == ALARM_B ) {
10681068 _alarmBDay = day;
10691069 }
@@ -1193,7 +1193,7 @@ time_t STM32RTC::getAlarmEpoch(uint32_t *subSeconds, Alarm name)
11931193 tm.tm_year = _year + EPOCH_TIME_YEAR_OFF ;
11941194 tm.tm_mon = _month - 1 ;
11951195 syncAlarmTime (name);
1196- #ifdef RTC_ALARM_B
1196+ #if defined(ALARM_B_AVAILABLE)
11971197 if (name == ALARM_B ) {
11981198 tm.tm_mday = _alarmBDay;
11991199 tm.tm_hour = _alarmBHours;
@@ -1274,7 +1274,11 @@ void STM32RTC::setEpoch(time_t ts, uint32_t subSeconds)
12741274 _month = tmp->tm_mon + 1 ;
12751275 _day = tmp->tm_mday ;
12761276 if (tmp->tm_wday == 0 ) {
1277+ #if defined(USE_HALV2_DRIVER)
1278+ _wday = HAL_RTC_WEEKDAY_SUNDAY ;
1279+ #else
12771280 _wday = RTC_WEEKDAY_SUNDAY ;
1281+ #endif
12781282 } else {
12791283 _wday = tmp->tm_wday ;
12801284 }
@@ -1303,7 +1307,10 @@ void STM32RTC::setY2kEpoch(time_t ts)
13031307 */
13041308void STM32RTC::configForLowPower (Source_Clock source)
13051309{
1306- #if defined(HAL_PWR_MODULE_ENABLED)
1310+ #if defined(HAL_PWR_MODULE_ENABLED) || (defined(USE_HAL_PWR_MODULE) && (USE_HAL_PWR_MODULE == 1))
1311+ #if defined(USE_HALV2_DRIVER)
1312+ HAL_RCC_LP_RTCAPB_EnableClockInStopMode ();
1313+ #else
13071314#ifdef __HAL_RCC_RTCAPB_CLKAM_ENABLE
13081315 __HAL_RCC_RTCAPB_CLKAM_ENABLE ();
13091316#endif
@@ -1319,6 +1326,7 @@ void STM32RTC::configForLowPower(Source_Clock source)
13191326#if defined(PWR_WAKEUP_PIN7_HIGH_3)
13201327 HAL_PWR_EnableWakeUpPin (PWR_WAKEUP_PIN7_HIGH_3 );
13211328#endif
1329+ #endif /* USE_HALV2_DRIVER */
13221330 setClockSource (source);
13231331 begin ();
13241332
@@ -1373,7 +1381,7 @@ void STM32RTC::syncAlarmTime(Alarm name)
13731381{
13741382 hourAM_PM_t p = HOUR_AM ;
13751383 uint8_t match;
1376- #ifdef RTC_ALARM_B
1384+ #if defined(ALARM_B_AVAILABLE)
13771385 if (name == ALARM_B ) {
13781386 RTC_GetAlarm (::ALARM_B , &_alarmBDay, &_alarmBHours, &_alarmBMinutes, &_alarmBSeconds,
13791387 &_alarmBSubSeconds, &p, &match);
@@ -1395,7 +1403,7 @@ void STM32RTC::syncAlarmTime(Alarm name)
13951403 case MATCH_HHMMSS :
13961404 case MATCH_MMSS :
13971405 case MATCH_SS :
1398- #ifdef RTC_ALARM_B
1406+ #if defined(ALARM_B_AVAILABLE)
13991407 if (name == ALARM_B ) {
14001408 _alarmBMatch = static_cast <Alarm_Match>(match);
14011409 } else
@@ -1405,7 +1413,7 @@ void STM32RTC::syncAlarmTime(Alarm name)
14051413 }
14061414 break ;
14071415 default :
1408- #ifdef RTC_ALARM_B
1416+ #if defined(ALARM_B_AVAILABLE)
14091417 if (name == ALARM_B ) {
14101418 _alarmBMatch = MATCH_OFF ;
14111419 } else
0 commit comments