打印
[STM32L0]

关于STM32L053 RTC显示误差的问题

[复制链接]
3159|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
化雨眠66|  楼主 | 2014-11-27 08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在搞得一个项目要用到时间、日期显示,开启stm32内部RTC,但是发现一个问题,就是我显示的时间老是不准确

大概要比正常的时间晚1个半小时之多。

/*-------------------------配置RTC时钟----------------------------------------*/
void RTC_CLK_Config(void)
{
    RCC_OscInitTypeDef          RCC_OscInitStruct;
    RCC_PeriphCLKInitTypeDef    PeriphClkInitStruct;

  /*##-1- Configue LSI as  RTC clock soucre ############################*/     
    RCC_OscInitStruct.OscillatorType =  RCC_OSCILLATORTYPE_LSE;//外部LSE时钟为RTC时钟源
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
    RCC_OscInitStruct.LSIState = RCC_LSI_OFF;
    RCC_OscInitStruct.LSEState = RCC_LSE_ON;   
    HAL_RCC_OscConfig(&RCC_OscInitStruct);


    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
    PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);

  /*##-2- Enable RTC peripheral Clocks #######################################*/
  /* Enable RTC Clock */     
    __HAL_RCC_RTC_ENABLE();

}
/*------------------日期时间参数配置------------------------------------------*/
void RTC_Config(void)
{
//   HAL_RTC_CLK_ENABLE();

    RTC_CLK_Config();
  /*##-1- Configure the RTC peripheral #######################################*/
  /* Configure RTC prescaler and RTC data registers */
  /* RTC configured as follow:
      - Hour Format    = Format 24
      - Asynch Prediv  = Value according to source clock
      - Synch Prediv   = Value according to source clock
      - OutPut         = Output Disable
      - OutPutPolarity = High Polarity
      - OutPutType     = Open Drain */
  RtcHandle.Instance = RTC;
  RtcHandle.Init.HourFormat = RTC_HOURFORMAT_24;
  RtcHandle.Init.AsynchPrediv = 0x7F;              // RTC_ASYNCH_PREDIV;
  RtcHandle.Init.SynchPrediv = 0x0130;             //RTC_SYNCH_PREDIV;
  RtcHandle.Init.OutPut = RTC_OUTPUT_DISABLE;
  RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  RtcHandle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;

  HAL_RTC_Init(&RtcHandle);

  /*##-2- Check if Data stored in BackUp register0: No Need to reconfigure RTC#*/
  /* Read the BackUp Register 0 Data */
  if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR0) != 0x32F2)
  {  
    /* Configure RTC Calendar */
    RTC_CalendarConfig();
  }  

}

大神给提提建议哪里出了问题?

沙发
mmuuss586| | 2014-11-27 21:38 | 只看该作者

是一天下来差这么多少时间吗?

使用特权

评论回复
板凳
化雨眠66|  楼主 | 2014-11-28 08:18 | 只看该作者
mmuuss586 发表于 2014-11-27 21:38
是一天下来差这么多少时间吗?

是的   版主

使用特权

评论回复
地板
yinhaix| | 2015-5-14 14:43 | 只看该作者
我也正要做这个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

77

帖子

8

粉丝