92 lines
1.9 KiB
C
92 lines
1.9 KiB
C
|
||
#include "FM_RTC.h"
|
||
|
||
|
||
extern RTC_HandleTypeDef hrtc;
|
||
|
||
/**
|
||
* @brief 初始化rtc
|
||
* @param
|
||
* @retval
|
||
*/
|
||
void FM_RTC_Init(void)
|
||
{
|
||
HD_RTC_Init();
|
||
}
|
||
|
||
/**
|
||
* @brief 设置rtc时间
|
||
* @param
|
||
* @retval
|
||
*/
|
||
void setRTC_Time(timeInfo *time)
|
||
{
|
||
/* 日期结构体 */
|
||
RTC_DateTypeDef setData;
|
||
/* 时间结构体 */
|
||
RTC_TimeTypeDef setTime;
|
||
|
||
setData.Year = time->year;
|
||
setData.Month = time->month;
|
||
setData.Date = time->day;
|
||
|
||
setTime.Hours = time->hour;
|
||
setTime.Minutes = time->minute;
|
||
setTime.Seconds = time->second;
|
||
|
||
HAL_RTC_SetDate(&hrtc, &setData, RTC_FORMAT_BIN);
|
||
HAL_RTC_SetTime(&hrtc, &setTime, RTC_FORMAT_BIN);
|
||
}
|
||
|
||
/**
|
||
* @brief 得到rtc时间
|
||
* @param
|
||
* @retval
|
||
*/
|
||
void getRTC_Time(timeInfo *time)
|
||
{
|
||
/* 日期结构体 */
|
||
RTC_DateTypeDef getData;
|
||
/* 时间结构体 */
|
||
RTC_TimeTypeDef getTime;
|
||
|
||
HAL_RTC_GetDate(&hrtc, &getData, RTC_FORMAT_BIN);
|
||
HAL_RTC_GetTime(&hrtc, &getTime, RTC_FORMAT_BIN);
|
||
|
||
time->year = getData.Year;
|
||
time->month = getData.Month;
|
||
time->day = getData.Date;
|
||
time->hour = getTime.Hours;
|
||
time->minute = getTime.Minutes;
|
||
time->second = getTime.Seconds;
|
||
}
|
||
|
||
/**
|
||
* @brief time1 - time2的差值
|
||
* @param
|
||
* @retval 返回的时间单位为秒
|
||
*/
|
||
uint32_t differTime(timeInfo *time1, timeInfo *time2)
|
||
{
|
||
uint32_t differ_s;
|
||
|
||
differ_s = time1->second - time2->second
|
||
+ time1->minute * 60 - time2->minute * 60
|
||
+ time1->hour * 3600 - time2->hour * 3600
|
||
+ time1->day * 86400 - time2->day * 86400
|
||
+ (time1->month - time2->month) * 2592000
|
||
+ (time1->year - time2->year) * 31536000;
|
||
|
||
return differ_s;
|
||
}
|
||
|
||
// /**
|
||
// * @brief time3根据time1和time2差值得到time3,time3 += time1 - time2
|
||
// * @param
|
||
// * @retval
|
||
// */
|
||
// void chargeTime(timeInfo *time1, timeInfo *time2, timeInfo *time3)
|
||
// {
|
||
|
||
// }
|