OpenEdv-开源电子网

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

RTC初始化问题

[复制链接]

38

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2013-8-19
在线时间
0 小时
发表于 2014-3-27 10:31:57 | 显示全部楼层 |阅读模式
原子RTC一章的代码
while(RTC_Init()) //RTC初始化 ,一定要初始化成功
LCD_ShowString(60,130,200,16,16,"RTC ERROR!   ");
delay_ms(800);
LCD_ShowString(60,130,200,16,16,"RTC Trying...");
}
我们看到RTC_Init()初始化成功会返回0,这样可以跳出while循环。否则一直在循环里面。
问题在于,我没有给Init预设初始返回值,那他是怎么返回非0 的值的呢

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

使用道具 举报

38

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2013-8-19
在线时间
0 小时
 楼主| 发表于 2014-3-27 11:06:11 | 显示全部楼层
回复【楼主位】liyuanmrwhite:
---------------------------------
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET) //检查指定的RCC标志位设置与否,等待低速晶振就绪
{
temp++;
delay_ms(10);
if(temp>=300)return 1;//初始化时钟失败,晶振有问题 (250为设置的阈值)    
}
是在这一步进行初始返回值赋值。可是。我在上机调试的时候,LSE一直在等待就绪,出不来,这是怎么回事
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-3-27 12:33:27 | 显示全部楼层
回复【2楼】liyuanmrwhite:
---------------------------------
可能是硬件问题哦。STM32的RTC经常会遇到不启振的现象。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

38

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2013-8-19
在线时间
0 小时
 楼主| 发表于 2014-3-27 20:21:18 | 显示全部楼层
回复【3楼】xiaoyan:
--------------------------------
我现在直接用轮询
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
时间确实有点长
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 22:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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