打印

STM32F103VE在系统复位时 RTC_PRL会自动重置成0x8000

[复制链接]
2075|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lhhmcs51|  楼主 | 2012-11-1 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lhhmcs51 于 2012-11-2 00:30 编辑

用STM32F103VE做一个小项目,在测试时发现多次重新上电RTC会比校准过的时间慢了一些(秒的变化有明显的先后顺序),将产品在keil下联上ulink2发现RTC预分频器装载值RTC_PRL在系统复位时(外部RESET或按keil的RST按钮) ,会自动变成0x8000,而不RTC初始化时配置的32765, 并且奇怪的是BKP_DR中的数据与RTC_CNT都没发现过有丢失现象。系统电源3.2V,Vbat为3.0V,按数据手册说明当Vbat>1.8V时,是不应该发生备份域复位?假设说发生备份域复位,BKP_DR上的数据会丢失,并且RTC_CNT也不是与标准时间差几秒啊(RTC已通过校准,理论上误差1ppm,校准完后在不掉电的情况下10个多小时后与标准时间比较,看不出有秒级的差异),手册上说RTC_PRL应该也是属于备份域里的的寄存器,为什么它每次上电或外部复位都会被重置成0x8000?     请知道原因的高手们指点一下迷经,谢谢!
沙发
lhhmcs51|  楼主 | 2012-11-2 00:28 | 只看该作者
大耳刮子打自己一巴掌!手册上说了PRL为只写寄存器,我偏要看Keil读出来寄存器值来判断,并且武断地认为PRL不能保存,所以每次上电时都去重置PRL,估计写PRL会造成RTC暂停,这样多次重新上电累积才是造成时钟慢的真正原因:L。去除每次上电重置PRL的代码,多次频繁上电目前没有发现有偏慢的现象。随便提醒一下大家RTC_ALR也是只读的,别象我一样被表象迷惑了眼睛。

使用特权

评论回复
板凳
wangguidianzi| | 2014-1-13 11:35 | 只看该作者
学习喽

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝