[STM32F1] STM32的RTC时钟每次按键复位都会重新复位的问题

[复制链接]
 楼主| majtsdd 发表于 2014-4-4 16:04 | 显示全部楼层 |阅读模式
帖子如题所示
其实代码在下面
我每次复位之后技术都从2000开始
  1. void InitRTCCongig(void)
  2. {
  3.   if(BKP_ReadBackupRegister(BKP_DR1)!=0xA5A5)
  4.   {
  5.     InitRTCCLKConfig();
  6.     BKP_WriteBackupRegister(BKP_DR1,0xA5A5);
  7.   }else
  8.   {
  9.     if(RCC_GetFlagStatus(RCC_FLAG_PORRST)!=RESET)
  10.     {
  11.         //这是上电复位
  12.     }else if(RCC_GetFlagStatus(RCC_FLAG_PINRST)!=RESET)
  13.     {
  14.         //这是按键复位
  15.     }
  16.     RCC_ClearFlag();
  17.     RTC_WaitForLastTask();
  18.    
  19.     //RCC_RTCCLKCmd(ENABLE);
  20.     RTC_WaitForSynchro();
  21.     RTC_WaitForLastTask();
  22.    
  23.     RTC_ITConfig(RTC_IT_SEC,ENABLE);
  24.     RTC_WaitForLastTask();
  25.   }
  26. #ifndef RTCClockOutput_Enbale
  27.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);
  28.   PWR_BackupAccessCmd(ENABLE);
  29.   BKP_TamperPinCmd(DISABLE);
  30.   BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock);
  31. #endif
  32.   
  33.   InitRTCNVICConfig();
  34. }
下面是InitRTCCLKConfig()的代码
  1. static void InitRTCCLKConfig(void)
  2. {
  3.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);
  4.   PWR_BackupAccessCmd(ENABLE);
  5.   BKP_DeInit();
  6.   RCC_LSEConfig(RCC_LSE_ON);
  7.   while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);
  8.   RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
  9.   RCC_RTCCLKCmd(ENABLE);
  10.   RTC_WaitForSynchro();
  11.   RTC_WaitForLastTask();
  12.   RTC_SetCounter(2000);
  13.   RTC_WaitForLastTask();
  14.   RTC_ITConfig(RTC_IT_SEC,ENABLE);
  15.   RTC_WaitForLastTask();
  16.   RTC_SetPrescaler(32767);
  17.   RTC_WaitForLastTask();
  18.   PWR_BackupAccessCmd(DISABLE);
  19. }
 楼主| majtsdd 发表于 2014-4-15 11:44 | 显示全部楼层
看来是没人回答了
ticomi 发表于 2014-4-16 08:06 | 显示全部楼层
我之前也遇到这个问题,是没有查看RTC中的寄存器值是否已经配置,如果没配置则初始化否则不需要初始化!
 楼主| majtsdd 发表于 2014-4-16 08:33 | 显示全部楼层
先试试吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部