OpenEdv-开源电子网

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

STM32 RTC 闹钟中断的问题

[复制链接]

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
发表于 2012-6-28 20:29:02 | 显示全部楼层 |阅读模式
现在我第一次设置的闹钟中断可以使用,但是系统复位之后,就进不了闹钟中断了,为什么啊
努力?奋斗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-6-28 21:13:16 | 显示全部楼层
回复【2楼】咯耶:
---------------------------------
折腾好几天了,哪位大侠做过啊!
努力?奋斗
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2012-6-28 21:18:46 | 显示全部楼层
不至于吧,我以前做过,都可以诶~
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-6-28 21:23:33 | 显示全部楼层
回复【5楼】lsj9383:
---------------------------------
请赐教啊!秒中断没问题,就是进不了闹钟中断,感觉设置的闹钟值没被保存。
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-6-28 22:18:44 | 显示全部楼层
闹钟中断和秒中断是同一个服务函数.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-6-29 15:36:54 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
void RTC_IRQHandler(void)
{
  if (RTC_GetITStatus(RTC_IT_SEC) != RESET)
  {
    /* Clear the RTC Second interrupt */
    RTC_ClearITPendingBit(RTC_IT_SEC);

    GPIOC->ODR ^= (1<<4);
    TimeDisplay = 1;
  }

if(RTC_GetITStatus(RTC_IT_ALR)!=RESET)//查询是否为闹钟中断
 {
RTC_ClearITPendingBit(RTC_IT_ALR);//消除闹钟中断标识
RTC_WaitForLastTask();
AlmIndex = 1;
}
}
是一个中断AlmIndex 的值就是不等于1啊,没有检测到闹钟
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-6-29 19:58:22 | 显示全部楼层
那你要找一下你的设置了.我的毕业设计就有闹钟设置的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-6-29 20:12:34 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
终于可以了啊!无论是否需要配置RTC寄存器,每次系统复位都需要,如下配置:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
RCC_RTCCLKCmd(ENABLE);
PWR_BackupAccessCmd(ENABLE);
努力?奋斗
回复 支持 反对

使用道具 举报

15

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-8-17
在线时间
0 小时
发表于 2012-9-11 16:52:43 | 显示全部楼层
回复【10楼】原味_郭:
---------------------------------
你的闹钟中断和秒中断是同一个服务函数,还是分开的啊?我的单独闹钟中断用不起来
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-9-13 13:48:25 | 显示全部楼层
回复【11楼】xiaoxiao123:
---------------------------------
同一个服务函数啊!
努力?奋斗
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-9-27 17:23:48 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
闹钟中断和秒中断在同一个服务函数中,那当秒中断和闹钟中断同时来时怎么处理啊
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

51

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2012-10-24
在线时间
19 小时
发表于 2013-4-16 13:35:14 | 显示全部楼层
回复【5楼】lsj9383:
---------------------------------
您好!stm32请问怎么设置闹钟的?
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-4-16 13:53:26 | 显示全部楼层
回复【15楼】莆田:
---------------------------------
嗯?
回复 支持 反对

使用道具 举报

51

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2012-10-24
在线时间
19 小时
发表于 2013-4-16 13:56:39 | 显示全部楼层
回复【16楼】lsj9383:
---------------------------------
RTC闹钟,怎么也进不了闹钟中断啊
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-4-17 12:40:57 | 显示全部楼层
回复【17楼】莆田:
---------------------------------
额,说实话,这个我现在也忘了,O(∩_∩)O~很久没用RTC功能了
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2013-4-18 11:44:41 | 显示全部楼层
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);





void Set_Alarm(uint32_t alarm)
  {
    tempCountValue = RTC_GetCounter(); //得到计数器目前的值
tempCountValue = tempCountValue + alarm; //闹钟到时计数器中的值
RTC_WaitForLastTask();
RTC_SetAlarm(tempCountValue); //设置闹钟的值
RTC_WaitForLastTask();
  }
努力?奋斗
回复 支持 反对

使用道具 举报

51

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2012-10-24
在线时间
19 小时
发表于 2013-4-18 13:06:21 | 显示全部楼层
回复【19楼】原味_郭:
---------------------------------
谢谢,现在弄好了
回复 支持 反对

使用道具 举报

51

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2012-10-24
在线时间
19 小时
发表于 2013-4-18 13:06:33 | 显示全部楼层
回复【18楼】lsj9383:
---------------------------------
谢谢,弄好了
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-5-28 11:56:07 | 显示全部楼层
回复【20楼】莆田:
---------------------------------
请问下你的RTC闹钟中断如何弄好的,,我也遇到这个问题,,能不能把完整的代码发给我看看下
回复 支持 反对

使用道具 举报

51

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2012-10-24
在线时间
19 小时
发表于 2013-6-10 21:19:07 | 显示全部楼层
回复【22楼】Lsoxi2013:
---------------------------------
你弄好了吗?不好意思,很久没上这个论坛了,我在这个论坛共享了个指针式时钟的作品,里面的程序有,你可以下载来看看。
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-10-19
在线时间
0 小时
发表于 2013-7-22 16:58:26 | 显示全部楼层
回复【10楼】原味_郭:
---------------------------------
厉害!!
回复 支持 反对

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-14
在线时间
2 小时
发表于 2014-8-22 11:09:14 | 显示全部楼层
回复【14楼】正点原子:
---------------------------------
我想问一下 ,如果设置闹钟的时候 设置成当前的时间值   是不是能马上产生中断???
No do no see...Why not try?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-8-22 23:33:31 | 显示全部楼层
回复【25楼】J_acket:
---------------------------------
大于当前时间1秒钟,也就可以产生中断 了
如果刚好等于当前时间,应该不会产生了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-8-14
在线时间
2 小时
发表于 2014-8-25 10:45:06 | 显示全部楼层
回复【26楼】正点原子:
---------------------------------
好的  去试一下
No do no see...Why not try?
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-8-8
在线时间
1 小时
发表于 2014-9-10 00:18:12 | 显示全部楼层
我的也刚OK,谢谢了。不过我还有一个问题,不过等会我也会试下,就是我想设置多个闹钟,一天内或者几天内,比如我今天下三点有个会 我需要提前设置下闹钟,晚上8点还有饭局,早上六点要起早床,也需要设置下闹钟等。不知道可不可以设置多个哦。
回复 支持 反对

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-10-13
在线时间
18 小时
发表于 2014-12-12 13:31:18 | 显示全部楼层
回复【19楼】原味_郭:
---------------------------------
这位大哥,可以留个QQ号交流一下不,我设置void Set_Alarm(uint32_t alarm) 
  { 
    tempCountValue = RTC_GetCounter();  //得到计数器目前的值 
tempCountValue = tempCountValue + alarm; //闹钟到时计数器中的值 
RTC_WaitForLastTask(); 
RTC_SetAlarm(tempCountValue);  //设置闹钟的值 
RTC_WaitForLastTask(); 
  }
总是死在这个函数里,运行部出去
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2015-5-30
在线时间
19 小时
发表于 2016-2-19 16:23:58 | 显示全部楼层
wp153453278 发表于 2014-12-12 13:31
回复【19楼】原味_郭:
---------------------------------
这位大哥,可以留个QQ号交流一下不,我设置void& ...

你好,我出现的问题也是死在这个函数里面,你最后怎么解决的呢
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2016-6-23
在线时间
66 小时
发表于 2021-4-11 19:29:22 | 显示全部楼层
解决方法没说到点子上
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 00:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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