关于 RTC的闹钟中断的实验的实现

2019-07-21 05:36发布

查了下论坛有些人问RTC 闹钟中断的问题,看到有些人有疑问,我把我的代码贴上去,战舰的实现是没有问题的。。基于  RTC实验修改的。。以下是修改的。


记住在main 函数加上 beep_init() 这个函数,不然蜂鸣器不会响。。
void RTC_IRQHandler(void)
{                 
   if(RTC->CRL&0x0001)                        //秒钟中断
        {                                                       
                RTC_Get();                                //更新时间   
        }
        if(RTC->CRL&0x0002)                        //闹钟中断
        {
                RTC->CRL&=~(0x0002);        //清闹钟中断          
                RTC_Get();                                //更新时间   
                  printf("Alarm Time:%d-%d-%d %d:%d:%d ",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);//输出闹铃时间          
      RTC->CRH |=1<<1;   //开启闹铃
      BEEP = 1;    // 蜂鸣器
      delay_ms(200);
      BEEP=0;

        }                                                                                                    
    RTC->CRL&=0X0FFA;                 //清除溢出,秒钟中断标志
        while(!(RTC->CRL&(1<<5)));        //等待RTC寄存器操作完成                 
          
}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。