OpenEdv-开源电子网

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

RTC时钟初始化卡死,并非卡死在while里面

[复制链接]

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2019-8-13
在线时间
21 小时
发表于 2019-9-19 20:02:52 | 显示全部楼层 |阅读模式
目前使用一款单片机的RTC时钟(STM32F103RCT6),但是在初始化里面老卡死,进行仿真的时候也会卡死在里面。里面并没有while循环卡死的情况,是因为RTC没有起振还是其他原因?最近碰到问题好多。。。。
然后还有一个现象,只要第一次初始化之后,后面将此初始化屏蔽掉之后单片机一样可以使用,并且RTC时钟也可以使用了,就是添加了RTC初始化就会卡死

int8_t RTC_CheckAndConfig(struct rtc_time *tm)
{
        if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5 && BKP_ReadBackupRegister(BKP_DR1) != 0x5A5A)
        {

                /* RTC Configuration */
                if(RTC_Configuration()!=RTC_OK) return RTC_TIMEOUT;
               
                /* Adjust time by users typed on the hyperterminal */
                Time_Adjust(tm);

                BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);
        }
        else
        {
                /*等待寄存器同步*/
                RTC_WaitForSynchro();
               
                /*允许RTC秒中断*/
                RTC_ITConfig(RTC_IT_SEC, ENABLE);
               
                /*等待上次RTC寄存器写操作完成*/
                RTC_WaitForLastTask();       
        }

//          /* Clear reset flags */
          RCC_ClearFlag();
        return RTC_OK;
}


这个程序是抄的别人的程序,有谁遇到过的,帮忙看一下下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2019-9-20 10:57:09 | 显示全部楼层
我使用原子的RTC库函数版本的配置好像也会卡死,改为使用寄存器版本的配置之后就没问题了。楼主可以试试,原因没有找到。
回复 支持 反对

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2019-8-13
在线时间
21 小时
 楼主| 发表于 2019-9-21 09:39:50 | 显示全部楼层
周易八索连山 发表于 2019-9-20 10:57
我使用原子的RTC库函数版本的配置好像也会卡死,改为使用寄存器版本的配置之后就没问题了。楼主可以试试, ...

谢谢,我找到原因了,是因为我设置秒中断服务函数的时候里面程序写错了,所以,在秒中断那个地方老卡死。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 23:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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