OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7496|回复: 7

RTC闹钟中断的问题

[复制链接]

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-5-28 11:27:09 | 显示全部楼层 |阅读模式
为什么只能进入秒中断,,闹钟中断老进不去,,

void RTC_NVIC_Config(void)
{    
    NVIC_InitTypeDef NVIC_InitStructure;
    NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;        //RTC全局中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;    //先占优先级1位,从优先级3位
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;    //先占优先级0位,从优先级4位
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //使能该通道中断
    NVIC_Init(&NVIC_InitStructure);        //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
}

void RTC_Init(void)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);
    /*使能RTC后备寄存器的写*/
    WR_BackupAccessCmd(ENABLE);
    /*BKP寄存器全部设为缺省值*/
    BKP_DeInit();
    /*RCC打开了LSE时钟*/
    RCC_LSEConfig(RCC_LSE_ON);  
    /*等待LSE就绪,一般来说,如果谐振不对,就会死在这里,实际代码请慎重*/
    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);
    /*RTC使用时钟源LSE*/
    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
    /*RTC的时钟开启*/
    RCC_RTCCLKCmd(ENABLE);
    /*RTC等待同步*/
    RTC_WaitForSynchro();
    /*这个代码在RTC中常常出现,类似于等待就绪的含义*/
    RTC_WaitForLastTask();
    /*使能RTC秒中断*/
    RTC_ITConfig(RTC_IT_SEC, ENABLE);
    RTC_ITConfig(RTC_IT_ALR, ENABLE);
    RTC_WaitForLastTask();
    /*RTC预分频,32768HZ,分为一秒一个振荡,RTC period = RTCCLK/RTC_PR = (32.768KHz)/(32767+1)*/
    RTC_SetPrescaler(32767);
    RTC_WaitForLastTask();

}



//RTC中断服务函数
void RTC_IRQHandler(void)
{                                
    if(RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒钟中断
    {    
       RTC_ClearITPendingBit(RTC_IT_SEC);                             
    }
    if(RTC_GetITStatus(RTC_IT_ALR) != RESET)//闹钟中断
    {
        //闹钟处理
        LED0=!LED0;
        RTC_ClearITPendingBit(RTC_IT_ALR);
    }                                                                                                       
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-28 16:46:59 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-28 16:47:35 | 显示全部楼层
闹钟值设置为多少了?闹钟你知道什么情况下才闹么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
 楼主| 发表于 2013-5-28 17:03:24 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
什么情况才闹?我现在是不知道,,计数器和闹钟值什么区别
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
 楼主| 发表于 2013-5-28 17:08:13 | 显示全部楼层
回复【4楼】Lsoxi2013:
---------------------------------
我计数器设0,闹钟值设置为30
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
 楼主| 发表于 2013-5-28 17:10:25 | 显示全部楼层
现在好像可以了,,但奇怪,,为什么我在RTC.C里直接写LED1=!LED1,,,LED不亮
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
 楼主| 发表于 2013-5-30 14:33:27 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
RTC实时时钟实验的例子,我把LED1=!LED1写在闹钟中断里,,为什么LED1没亮,,好像只能在main函数里调用LED1=!LED1
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-30 21:04:49 | 显示全部楼层
说明没进入到闹钟中断吧...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 04:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表