新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2014-3-19
- 在线时间
- 0 小时
|
发表于 2014-3-20 23:56:36
|
显示全部楼层
把函数改成下面这个样子,好像就可以了,也不明白为什么
void RTC_IRQHandler(void)
{
if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒钟中断
{
static int i=0;
//LED0=0; //亮灯DS0
RTC_ClearITPendingBit(RTC_IT_SEC);
RTC_Get();//更新时间
i++;
if(i==20)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能PWR和BKP外设时钟
  WR_BackupAccessCmd(ENABLE); //使能后备寄存器访问
RTC_WaitForLastTask();
RTC_EnterConfigMode();
RTC_SetAlarm(RTC_GetCounter()+8);
RTC_ExitConfigMode();
RTC_WaitForLastTask();
RTC_ITConfig(RTC_IT_ALR, ENABLE);
RTC_WaitForLastTask();
Sys_Enter_Standby();
i=0;
}
}
if(RTC_GetITStatus(RTC_IT_ALR)!= RESET)//闹钟中断
{
RTC_ClearITPendingBit(RTC_IT_ALR); //清闹钟中断
  WR->CR|=1<<2;
LCD_ShowString(30,30,200,16,16,"Warship enter alrINT!");
}
RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); //清闹钟中断
RTC_WaitForLastTask();
}
多谢楼主和原子哥的热情帮助啊 |
|