OpenEdv-开源电子网

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

RTC闹钟中断问题

[复制链接]

13

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-5-30 16:07:44 | 显示全部楼层 |阅读模式

原子哥,我想问一下,

1.    为什么我一设置完闹钟里面的参数后,就立刻进入中断了呢?(我已经用串品打印过了,设置的时间比正在走的时间还长,所以应该不存在刚好设置完后时间就相同了)

2.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//使能PWR和BKP外设时钟   
        WR_BackupAccessCmd(ENABLE); //使能RTC和后备寄存器访问
        RTC_WaitForSynchro(); //等待最近一次对RTC寄存器的写操作完成
        RTC_SetAlarm(counts);  //闹钟设置
        少了,RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//使能PWR和BKP外设时钟    
                 PWR_BackupAccessCmd(ENABLE); //使能RTC和后备寄存器访问
        之后,秒中断就停止了,不再进行计数器的累加?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-30 20:39:42 | 显示全部楼层
1,是不是秒钟中断?闹钟和秒钟中断都是共用一个中断服务函数的.
2,这个不能少啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-5-23
在线时间
5 小时
发表于 2013-5-30 22:29:35 | 显示全部楼层
楼主应该把代码贴的全点,从你贴的上面 在设置报警寄存器前缺少RCC_EnterConfigMode();另外根据情况需要加入RTC_WaitForLastTask();

另外,注释有误:“RTC_WaitForSynchro(); //等待时钟同步”
回复 支持 反对

使用道具 举报

13

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2013-5-31 19:55:32 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
确实是用在同一个中断函数里面的,但是回复【3楼】jiajia:
---------------------------------
RTC_SetAlarm(counts);  //闹钟设置,这里面已经有调用了,RCC_EnterConfigMode()和RTC_ExitConfigMode()了,我想问一下,RTC_WaitForLastTask();和 RTC_WaitForSynchro();这两个有什么区别
回复 支持 反对

使用道具 举报

13

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2013-5-31 19:56:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
秒中断和闹钟中断实是在同一个中断函数中的,我一设置完后就立刻进入闹钟中断,到了我设置的时间后,也可能正常进入闹钟中断
回复 支持 反对

使用道具 举报

7

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-5-23
在线时间
5 小时
发表于 2013-5-31 23:08:45 | 显示全部楼层
回复【4楼】一蓑、烟雨。:
---------------------------------
RTC_WaitForSynchro();等待时钟同步,在复位后如果想对RTC寄存器进行读写操作,必须要先保证APB总线时钟与RTC时钟同步
RTC_WaitForLastTask();等待RTC上一个寄存器写完成后才可进行下面RTC报警数据寄存器的操作

另外,我也是初学,有些地方可能理解不对,还得你自己多看书
回复 支持 反对

使用道具 举报

13

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2013-6-1 09:56:28 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
秒中断和闹钟中断确实是在同一个中断函数中的,我一设置完后就立刻进入闹钟中断,到了我设置的时间后,也能正常进入闹钟中断,原子哥能解释一下吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-1 10:07:10 | 显示全部楼层
开启闹钟中断之前,把闹钟中断标志清零下试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2013-6-1 11:52:39 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
不行,还是一设置完就立刻进入闹钟中断
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 01:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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