RTC精度
本帖最后由 netlhx 于 2015-5-29 10:36 编辑RTC跑12小时,就快了大约4-5秒的样子,有什么好办法处理么?
听说可以校正,还没找到方法
楼主用的是RTC晶振还是主晶振、RC? 安 发表于 2015-5-29 10:50
楼主用的是RTC晶振还是主晶振、RC?
外部32.768K的 楼主发一下RTC的配置函数吧 安 发表于 2015-5-29 11:29
楼主发一下RTC的配置函数吧用的是HAL库,F407外接32.768K
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_PeriphCLKInitTypeDef RCC_PeriphCLKInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
RCC_OscInitStruct.LSIState = RCC_LSI_OFF;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
RCC_PeriphCLKInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct);
__HAL_RCC_RTC_ENABLE();
RtcHandle.Instance = RTC;
RtcHandle.Init.HourFormat = RTC_HOURFORMAT_24;
RtcHandle.Init.AsynchPrediv = 127;
RtcHandle.Init.SynchPrediv = 255;
RtcHandle.Init.OutPut = RTC_OUTPUT_DISABLE;
RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
RtcHandle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
HAL_RTC_Init(&RtcHandle); 感觉第一,要精振好,第二,要有校准 感觉第一,要晶振好,第二,要有校准 :lol:lol:lol要精准直接用专用芯片 我这里没有板子帮你测试,只能理论分析。
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI;
改成RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;试一下。
页:
[1]