7840|8

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问香主:关于RTC报警中断的问题,急啊! [复制链接]

调试STM32的过程中使用了其内部的RTC报警中断,但是发现我已经按照datasheet中的设置要求,设置ALRE=1, 通过NVIC_Init函数设置并使能RTCAlarm_IRQChannel中断向量。

在调试的过程中,看到RTC的寄存器中的ALRE、ALRF都已经被置位,但是我的中断处理函数RTCAlarm_IRQHandler却一直得不到响应和执行?请问这是为什么呢?还有什么需要设置的吗?
此帖出自stm32/stm8论坛

最新回复

                                 如果楼主不是做跟低功耗相关的,仅仅是要产生RTC的闹钟报警中断的话,以上做法有点绕路,确实“别扭”。当然如果楼主确实是要从低功耗模式中,被RTC的闹钟报警唤醒,那么以下的叙述可以直接忽略掉~~~ ORZ关于RTC的中断,在NVIC中有两个向量:RTC_IRQChannel      /* RTC global Interrupt */RTCAlarm_IRQChannel   /* RTC Alarm through EXTI Line Interrupt */如果楼主不是做跟低功耗相关的,仅仅是要产生RTC的闹钟报警中断的话,只需要在NVIC中使能RTC_IRQChannel就可以,当alarm产生了,自动跳到RTC_IRQChannel,在这个ISR中,通过检查中断状态位(RTC_GetITStatus),如果是alarm中断,就做相应处理。   详情 回复 发表于 2009-3-12 11:31
点赞 关注
 

回复
举报

88

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

lajsdlf

                                 asdf
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

NVIC有没有初始化?

                                  
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 

NVIC初始化

我已经初始化了RTCAlarm_IRQHandler这个向量,还需要什么初始化吗?
    // 配置RTC闹钟中断向量
    NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    
    // 配置RTC秒中断向量
    NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 

设置有误,优先级没设置好,应该会出错乱掉

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 

RTC报警中断是连接到外部中断线17上

在初始化时,需要对外部中断线17进行初始化。

添加以下代码:
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

  /* Enable the EXTI Line17 Interrupt */
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Line = EXTI_Line17;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 

搞定!

谢谢ST_ARM ,根据你的提示,搞定!

但是心中还是有点郁闷,这个RTC闹钟还是用起来怎么就那么的别扭!
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 

说说,怎么的别扭?

                                 大家一起评评~~~~~~
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 

楼主可能绕路了,我是说可能

如果楼主不是做跟低功耗相关的,仅仅是要产生RTC的闹钟报警中断的话,以上做法有点绕路,确实“别扭”。

当然如果楼主确实是要从低功耗模式中,被RTC的闹钟报警唤醒,那么以下的叙述可以直接忽略掉~~~ ORZ

关于RTC的中断,在NVIC中有两个向量:
RTC_IRQChannel      /* RTC global Interrupt */
RTCAlarm_IRQChannel   /* RTC Alarm through EXTI Line Interrupt */

如果楼主不是做跟低功耗相关的,仅仅是要产生RTC的闹钟报警中断的话,只需要在NVIC中使能RTC_IRQChannel就可以,当alarm产生了,自动跳到RTC_IRQChannel,在这个ISR中,通过检查中断状态位(RTC_GetITStatus),如果是alarm中断,就做相应处理。

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表