40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
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
|
|
} |