Skip to content

Commit 1201f4a

Browse files
authored
Merge pull request #2127 from svastm/fix_rtc_min_year
[STM32XX] Fix RTC minimum date
2 parents ee2f917 + a101c4f commit 1201f4a

File tree

8 files changed

+26
-31
lines changed

8 files changed

+26
-31
lines changed

hal/targets/hal/TARGET_STM/TARGET_STM32F0/rtc_api.c

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ static void rtc_configure_time_and_date()
5656
mDate.WeekDay = 1;
5757
mDate.Month = 1;
5858
mDate.Date = 1;
59-
mDate.Year = 1970;
59+
mDate.Year = 2;
6060
if (HAL_RTC_SetDate(&RtcHandle, &mDate, RTC_FORMAT_BIN) != HAL_OK) {
6161
error("Date set failed\n");
6262
}
6363

6464
mTime.Hours = 0;
6565
mTime.Minutes = 0;
6666
mTime.Seconds = 0;
67-
mTime.TimeFormat = RTC_HOURFORMAT12_AM;
67+
mTime.TimeFormat = RTC_HOURFORMAT_24;
6868
mTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
6969
mTime.StoreOperation = RTC_STOREOPERATION_RESET;
7070
if (HAL_RTC_SetTime(&RtcHandle, &mTime, RTC_FORMAT_BIN) != HAL_OK) {
@@ -243,12 +243,7 @@ time_t rtc_read(void) {
243243
timeinfo.tm_wday = dateStruct.WeekDay;
244244
timeinfo.tm_mon = dateStruct.Month - 1;
245245
timeinfo.tm_mday = dateStruct.Date;
246-
#if DEVICE_LOWPOWERTIMER
247-
//We need to add 52 to get the 1970 year
248-
timeinfo.tm_year = dateStruct.Year + 52;
249-
#else
250-
timeinfo.tm_year = dateStruct.Year + 100;
251-
#endif
246+
timeinfo.tm_year = dateStruct.Year + 68;
252247
timeinfo.tm_hour = timeStruct.Hours;
253248
timeinfo.tm_min = timeStruct.Minutes;
254249
timeinfo.tm_sec = timeStruct.Seconds;
@@ -273,11 +268,11 @@ void rtc_write(time_t t) {
273268
dateStruct.WeekDay = timeinfo->tm_wday;
274269
dateStruct.Month = timeinfo->tm_mon + 1;
275270
dateStruct.Date = timeinfo->tm_mday;
276-
dateStruct.Year = timeinfo->tm_year - 100;
271+
dateStruct.Year = timeinfo->tm_year - 68;
277272
timeStruct.Hours = timeinfo->tm_hour;
278273
timeStruct.Minutes = timeinfo->tm_min;
279274
timeStruct.Seconds = timeinfo->tm_sec;
280-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
275+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
281276
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
282277
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
283278

@@ -295,7 +290,7 @@ void rtc_set_alarm(struct tm *ti, uint32_t subsecs)
295290
mAlarm.AlarmTime.Minutes = ti->tm_min;
296291
mAlarm.AlarmTime.Seconds = ti->tm_sec;
297292
mAlarm.AlarmTime.SubSeconds = subsecs;
298-
mAlarm.AlarmTime.TimeFormat = RTC_HOURFORMAT12_AM;
293+
mAlarm.AlarmTime.TimeFormat = RTC_HOURFORMAT_24;
299294
mAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY;
300295
mAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_NONE;
301296
mAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;

hal/targets/hal/TARGET_STM/TARGET_STM32F1/rtc_api.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ time_t rtc_read(void)
159159
timeinfo.tm_wday = dateStruct.WeekDay;
160160
timeinfo.tm_mon = dateStruct.Month - 1;
161161
timeinfo.tm_mday = dateStruct.Date;
162-
timeinfo.tm_year = dateStruct.Year + 100;
162+
timeinfo.tm_year = dateStruct.Year;
163163
timeinfo.tm_hour = timeStruct.Hours;
164164
timeinfo.tm_min = timeStruct.Minutes;
165165
timeinfo.tm_sec = timeStruct.Seconds;
@@ -186,7 +186,7 @@ void rtc_write(time_t t)
186186
dateStruct.WeekDay = timeinfo->tm_wday;
187187
dateStruct.Month = timeinfo->tm_mon + 1;
188188
dateStruct.Date = timeinfo->tm_mday;
189-
dateStruct.Year = timeinfo->tm_year - 100;
189+
dateStruct.Year = timeinfo->tm_year;
190190
timeStruct.Hours = timeinfo->tm_hour;
191191
timeStruct.Minutes = timeinfo->tm_min;
192192
timeStruct.Seconds = timeinfo->tm_sec;

hal/targets/hal/TARGET_STM/TARGET_STM32F3/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ time_t rtc_read(void)
178178
timeinfo.tm_wday = dateStruct.WeekDay;
179179
timeinfo.tm_mon = dateStruct.Month - 1;
180180
timeinfo.tm_mday = dateStruct.Date;
181-
timeinfo.tm_year = dateStruct.Year + 100;
181+
timeinfo.tm_year = dateStruct.Year + 68;
182182
timeinfo.tm_hour = timeStruct.Hours;
183183
timeinfo.tm_min = timeStruct.Minutes;
184184
timeinfo.tm_sec = timeStruct.Seconds;
@@ -205,11 +205,11 @@ void rtc_write(time_t t)
205205
dateStruct.WeekDay = timeinfo->tm_wday;
206206
dateStruct.Month = timeinfo->tm_mon + 1;
207207
dateStruct.Date = timeinfo->tm_mday;
208-
dateStruct.Year = timeinfo->tm_year - 100;
208+
dateStruct.Year = timeinfo->tm_year - 68;
209209
timeStruct.Hours = timeinfo->tm_hour;
210210
timeStruct.Minutes = timeinfo->tm_min;
211211
timeStruct.Seconds = timeinfo->tm_sec;
212-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
212+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
213213
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
214214
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
215215

hal/targets/hal/TARGET_STM/TARGET_STM32F4/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ time_t rtc_read(void)
178178
timeinfo.tm_wday = dateStruct.WeekDay;
179179
timeinfo.tm_mon = dateStruct.Month - 1;
180180
timeinfo.tm_mday = dateStruct.Date;
181-
timeinfo.tm_year = dateStruct.Year + 100;
181+
timeinfo.tm_year = dateStruct.Year + 68;
182182
timeinfo.tm_hour = timeStruct.Hours;
183183
timeinfo.tm_min = timeStruct.Minutes;
184184
timeinfo.tm_sec = timeStruct.Seconds;
@@ -205,11 +205,11 @@ void rtc_write(time_t t)
205205
dateStruct.WeekDay = timeinfo->tm_wday;
206206
dateStruct.Month = timeinfo->tm_mon + 1;
207207
dateStruct.Date = timeinfo->tm_mday;
208-
dateStruct.Year = timeinfo->tm_year - 100;
208+
dateStruct.Year = timeinfo->tm_year - 68;
209209
timeStruct.Hours = timeinfo->tm_hour;
210210
timeStruct.Minutes = timeinfo->tm_min;
211211
timeStruct.Seconds = timeinfo->tm_sec;
212-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
212+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
213213
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
214214
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
215215

hal/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ time_t rtc_read(void)
178178
timeinfo.tm_wday = dateStruct.WeekDay;
179179
timeinfo.tm_mon = dateStruct.Month - 1;
180180
timeinfo.tm_mday = dateStruct.Date;
181-
timeinfo.tm_year = dateStruct.Year + 100;
181+
timeinfo.tm_year = dateStruct.Year + 68;
182182
timeinfo.tm_hour = timeStruct.Hours;
183183
timeinfo.tm_min = timeStruct.Minutes;
184184
timeinfo.tm_sec = timeStruct.Seconds;
@@ -208,11 +208,11 @@ void rtc_write(time_t t)
208208
dateStruct.WeekDay = timeinfo->tm_wday;
209209
dateStruct.Month = timeinfo->tm_mon + 1;
210210
dateStruct.Date = timeinfo->tm_mday;
211-
dateStruct.Year = timeinfo->tm_year - 100;
211+
dateStruct.Year = timeinfo->tm_year - 68;
212212
timeStruct.Hours = timeinfo->tm_hour;
213213
timeStruct.Minutes = timeinfo->tm_min;
214214
timeStruct.Seconds = timeinfo->tm_sec;
215-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
215+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
216216
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
217217
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
218218

hal/targets/hal/TARGET_STM/TARGET_STM32L0/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ time_t rtc_read(void)
190190
timeinfo.tm_wday = dateStruct.WeekDay;
191191
timeinfo.tm_mon = dateStruct.Month - 1;
192192
timeinfo.tm_mday = dateStruct.Date;
193-
timeinfo.tm_year = dateStruct.Year + 100;
193+
timeinfo.tm_year = dateStruct.Year + 68;
194194
timeinfo.tm_hour = timeStruct.Hours;
195195
timeinfo.tm_min = timeStruct.Minutes;
196196
timeinfo.tm_sec = timeStruct.Seconds;
@@ -217,11 +217,11 @@ void rtc_write(time_t t)
217217
dateStruct.WeekDay = timeinfo->tm_wday;
218218
dateStruct.Month = timeinfo->tm_mon + 1;
219219
dateStruct.Date = timeinfo->tm_mday;
220-
dateStruct.Year = timeinfo->tm_year - 100;
220+
dateStruct.Year = timeinfo->tm_year - 68;
221221
timeStruct.Hours = timeinfo->tm_hour;
222222
timeStruct.Minutes = timeinfo->tm_min;
223223
timeStruct.Seconds = timeinfo->tm_sec;
224-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
224+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
225225
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
226226
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
227227

hal/targets/hal/TARGET_STM/TARGET_STM32L1/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ time_t rtc_read(void)
189189
timeinfo.tm_wday = dateStruct.WeekDay;
190190
timeinfo.tm_mon = dateStruct.Month - 1;
191191
timeinfo.tm_mday = dateStruct.Date;
192-
timeinfo.tm_year = dateStruct.Year + 100;
192+
timeinfo.tm_year = dateStruct.Year + 68;
193193
timeinfo.tm_hour = timeStruct.Hours;
194194
timeinfo.tm_min = timeStruct.Minutes;
195195
timeinfo.tm_sec = timeStruct.Seconds;
@@ -216,11 +216,11 @@ void rtc_write(time_t t)
216216
dateStruct.WeekDay = timeinfo->tm_wday;
217217
dateStruct.Month = timeinfo->tm_mon + 1;
218218
dateStruct.Date = timeinfo->tm_mday;
219-
dateStruct.Year = timeinfo->tm_year - 100;
219+
dateStruct.Year = timeinfo->tm_year - 68;
220220
timeStruct.Hours = timeinfo->tm_hour;
221221
timeStruct.Minutes = timeinfo->tm_min;
222222
timeStruct.Seconds = timeinfo->tm_sec;
223-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
223+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
224224
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
225225
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
226226

hal/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ time_t rtc_read(void)
191191
timeinfo.tm_wday = dateStruct.WeekDay;
192192
timeinfo.tm_mon = dateStruct.Month - 1;
193193
timeinfo.tm_mday = dateStruct.Date;
194-
timeinfo.tm_year = dateStruct.Year + 100;
194+
timeinfo.tm_year = dateStruct.Year + 68;
195195
timeinfo.tm_hour = timeStruct.Hours;
196196
timeinfo.tm_min = timeStruct.Minutes;
197197
timeinfo.tm_sec = timeStruct.Seconds;
@@ -218,11 +218,11 @@ void rtc_write(time_t t)
218218
dateStruct.WeekDay = timeinfo->tm_wday;
219219
dateStruct.Month = timeinfo->tm_mon + 1;
220220
dateStruct.Date = timeinfo->tm_mday;
221-
dateStruct.Year = timeinfo->tm_year - 100;
221+
dateStruct.Year = timeinfo->tm_year - 68;
222222
timeStruct.Hours = timeinfo->tm_hour;
223223
timeStruct.Minutes = timeinfo->tm_min;
224224
timeStruct.Seconds = timeinfo->tm_sec;
225-
timeStruct.TimeFormat = RTC_HOURFORMAT12_PM;
225+
timeStruct.TimeFormat = RTC_HOURFORMAT_24;
226226
timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
227227
timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;
228228

0 commit comments

Comments
 (0)