关于 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寄存器操作完成                 
          
}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
peng1554
1楼-- · 2019-07-21 05:46
多谢分享
棒棒0
2楼-- · 2019-07-21 07:21
 精彩回答 2  元偷偷看……
1208
3楼-- · 2019-07-21 09:29
不错
1208
4楼-- · 2019-07-21 12:59
楼主,这个是在串口输入闹钟时间,就可以在相应的时间响应吗
新华状元
5楼-- · 2019-07-21 18:56
我按你上面的设置,串口打印信息出来了,就是蜂鸣器不响,这可能是什么原因造成的?

一周热门 更多>