void get_time(char*, char*); void set_time (void); 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 }