OpenEdv-开源电子网

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

RTC采用外部高速时钟128分频产生的错误

[复制链接]

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2013-8-5 10:42:03 | 显示全部楼层 |阅读模式
因为外部低速时钟不能起振,所以将RTC的时钟来源改为了外部高速时钟的128分频,其他RTC配置没有改变
配置代码如下:
                RCC_HSEConfig(RCC_HSE_ON);   //打开外部高速时钟
while(RCC_GetFlagStatus(RCC_FLAG_HSERDY)!=SET)  //等待打开成功
{
temp++;
delay(10);
if(temp==200)
{
return 1;
}
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);  //使用外部高速时钟128分频
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForLastTask();
此时外部低速时钟我没有开启。
出现的问题如下:
        第一次按键复位,可以进入秒中断,时钟正常运行,但以后再按复位键,时钟就没了,硬件调试发现程序死在了RTC_WaitForSynchro()函数里面(也就是说此时RTC_CRL_RSF=0)
但是如果以后使用的是断电复位,那么就不会出现死在那个函数里面的问题,则正常进入秒中断,时钟也会走,我想请问下为什么会出现这样的现象?是哪里配置错了?

谢谢。
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-8-5 12:43:23 | 显示全部楼层
问题出在,后备寄存器没有使能,第一次配置时候 你使能了,第二次 因为 你写了 标记,就没有运行打开 后备寄存器那段代码了,所以就出问题了
1-1
回复 支持 反对

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
 楼主| 发表于 2013-8-5 14:28:50 | 显示全部楼层
回复【2楼】mygod:
---------------------------------
按照您的说法,问题解决了,谢谢啦。可是还有个疑问就是为何之前使用按键复位就会出问题,使用断电复位就不会出现问题呢?
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-8-5 14:56:22 | 显示全部楼层
回复【3楼】wghfbj:
---------------------------------
还是 那个问题,自己想想
1-1
回复 支持 反对

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
 楼主| 发表于 2013-8-5 16:54:15 | 显示全部楼层
回复【4楼】mygod:
---------------------------------
我还是没想明白,我的现象是第二次复位(写了标记)以后,再使用按键复位,程序就不正常运行,如果使用断电复位,程序就能正常运行。
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
 楼主| 发表于 2013-8-5 22:33:18 | 显示全部楼层
回复【4楼】mygod:
---------------------------------
明白了,原因是我电池没电了,这样每次断电复位,BKP_DR1里面的数据因为没电而不能保存,所以启动之后我原来写进的标志就没有了,正常运行初始化步骤,而我按键复位的时候,并没有断电,BKP_DR1里面的数据还储存着,标志也就还在,所以直接跳过配置初始化了。谢谢您!
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-15 15:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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