打印

STM32的RTC出了点问题,请教一下大家

[复制链接]
2419|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
orangelxlf|  楼主 | 2012-12-31 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的STM32F103VBT6,其中的RTC在掉电的时候可以计数,但不会清零,就是我在秒中断里面加了计数到86400的时候,用SetCounter(0);使计数值清零,但不起作用,计数到86400会继续增加,86401, 86402等等,一直不会清零。请假一下大家这个怎么办?
沙发
pattywu| | 2012-12-31 19:32 | 只看该作者
   STM32的RTC写操作,是要解锁的。
   解BKP的锁。

使用特权

评论回复
板凳
orangelxlf|  楼主 | 2012-12-31 19:35 | 只看该作者
解了,允许写入寄存器、等待同步、进入配置模式、计数值清零、退出配置模式、禁止写入寄存器。

使用特权

评论回复
地板
orangelxlf|  楼主 | 2013-1-3 22:33 | 只看该作者
应该是STM32本身的问题,我在秒中断里面增加了下面的部分,初步测试可以了,但不知道长时间会不会有问题,不知道大家怎么解决这个问题的
if(RTC_GetCounter()>=86400)
        {
                Temp = RTC_GetCounter();
                RTCTime = Temp-(Temp/86400)*86400;
                RTC_SetTime(RTCTime);       
        }

使用特权

评论回复
5
orangelxlf|  楼主 | 2013-1-3 22:42 | 只看该作者
刚才翻了下网络,发现最简单的办法是将算出来的小时的值对24取余即可

使用特权

评论回复
6
IJK| | 2013-1-4 10:04 | 只看该作者
orangelxlf 发表于 2013-1-3 22:42
刚才翻了下网络,发现最简单的办法是将算出来的小时的值对24取余即可

这个方法是好方法。
对计时器清0 不是好方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

265

帖子

0

粉丝