打印

设置时钟出现死循环

[复制链接]
3061|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxj520wan|  楼主 | 2009-4-28 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请高手帮忙,我在设置时间时用以下函数,可是调用RTC_SetCounter(seconds)后程序就死在RTC_WaitForLastTask()上了,不知道是为什么?请高手帮个忙?
void time_adjust(ULONG seconds)
{
  /* Wait until last write operation on RTC registers has finished */
  RTC_WaitForLastTask();
  /* Change the current time */
  RTC_SetCounter(seconds);
  /* Wait until last write operation on RTC registers has finished */
  RTC_WaitForLastTask();
}

void RTC_SetCounter(u32 CounterValue)

  RTC_EnterConfigMode();

  /* Set RTC COUNTER MSB word */
  RTC->CNTH = CounterValue >> 16;
  /* Set RTC COUNTER LSB word */
  RTC->CNTL = (CounterValue & RTC_LSB_Mask);

  RTC_ExitConfigMode();
}

void RTC_WaitForLastTask(void)
{
  /* Loop until RTOFF flag is set */
  while ((RTC->CRL & RTC_FLAG_RTOFF) == (u16)RESET)
  {
  }
}
沙发
zhujw2002| | 2009-4-28 13:41 | 只看该作者

设置RTC前需使能PWR BKP

// Check if the Power On Reset flag is set
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

  /* Allow access to BKP Domain */
    PWR_BackupAccessCmd(ENABLE);

使用特权

评论回复
板凳
lxj520wan|  楼主 | 2009-4-29 08:36 | 只看该作者

问题已解决

谢谢高手,是这样的,问题已解决

使用特权

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

本版积分规则

4

主题

7

帖子

0

粉丝