diff --git a/RTC.c b/RTC.c new file mode 100644 index 0000000..2670ef6 --- /dev/null +++ b/RTC.c @@ -0,0 +1,39 @@ +void get_time(char* time, char* date) +{ + RTC_DateTypeDef gDate; + RTC_TimeTypeDef gTime; +/* Get the RTC current Time */ + HAL_RTC_GetTime(&hrtc, &gTime, RTC_FORMAT_BIN); +/* Get the RTC current Date */ + HAL_RTC_GetDate(&hrtc, &gDate, RTC_FORMAT_BIN); +/* Display time Format: hh:mm:ss */ + sprintf((char*)time,"%02d:%02d:%02d",gTime.Hours, gTime.Minutes, gTime.Seconds); +/* Display date Format: dd-mm-yy */ + sprintf((char*)date,"%02d-%02d-%2d",gDate.Date, gDate.Month, 2000 + gDate.Year); +} + +void set_time (void) +{ + RTC_TimeTypeDef sTime; + RTC_DateTypeDef sDate; + sTime.Hours = 0x10; // set hours + sTime.Minutes = 0x20; // set minutes + sTime.Seconds = 0x30; // set seconds + sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; + sTime.StoreOperation = RTC_STOREOPERATION_RESET; + if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK) + { + _Error_Handler(__FILE__, __LINE__); + } + sDate.WeekDay = RTC_WEEKDAY_THURSDAY; // + day + sDate.Month = RTC_MONTH_AUGUST; // + month + sDate.Date = 0x9; // date + sDate.Year = 0x18; // year + if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK) + { + _Error_Handler(__FILE__, __LINE__); + } + //HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR1, 0x32F2); // backup register +} \ No newline at end of file