实现的校准函数为:
void RTC_Calibration(void)
{
float Deviation = 0.0;
u8 CalibStep = 0;
Deviation = FastSecPer30days * PPM_PER_SEC; //得到ppm误差
Deviation /= PPM_PER_STEP; //得到校准值的浮点数
CalibStep = (u8)Deviation; // 得到校准值的整形数
if(Deviation >= (CalibStep + 0.5))
CalibStep += 1; //四舍五入
if(CalibStep > 127)
CalibStep = 127; // 校准值应在0—127之间
BKP_SetRTCCalibrationValue(CalibStep); //调用库函数
}
//函数结束RTC_Calibration
|