本帖最后由 Eternal单人行 于 2017-10-18 14:47 编辑
网上都是F1的,F4要怎么改
#define PPM_PER_STEP 0.9536743 //10^6/2^20.
#define PPM_PER_SEC 0.3858025 //10^6/(30d*24h*3600s).
u16 FastSecPer30days = 117; //菜单输入。117只用于演示。
实现的校准函数为:
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); //调用库函数
}
有大神知道下面这些数字校准怎么用吗
[mw_shl_code=c,true]/* Digital Calibration configuration functions *********************************/
ErrorStatus RTC_CoarseCalibConfig(uint32_t RTC_CalibSign, uint32_t Value);
ErrorStatus RTC_CoarseCalibCmd(FunctionalState NewState);
void RTC_CalibOutputCmd(FunctionalState NewState);
void RTC_CalibOutputConfig(uint32_t RTC_CalibOutput);
ErrorStatus RTC_SmoothCalibConfig(uint32_t RTC_SmoothCalibPeriod,
uint32_t RTC_SmoothCalibPlusPulses,
uint32_t RTC_SmouthCalibMinusPulsesValue);[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>