最近公司在做周期唤醒的功能,要求用户设置时间,然后产品就可以按照一定的时间每天或者每周定时唤醒。平时都是处于halt状态(或低功耗),把LSI二分频作为RTC时钟源,然后把唤醒时钟的分频器设为16分频。38k/2=19K 19K/16=1.8187KHz
我把RTC时钟启动之后就开启中断,然后设置16位唤醒自动装载寄存器,然后设置万年历的年月日时分秒。然后在一个while循环里点灯。通过外部按
键中断触发halt()模式,触发时以灭灯作标志。在进入halt模式之后再次唤醒时,发现RTC时钟比原来的时间慢了。我设置休眠唤醒的时间是17秒左右这是怎么回事?是不是在halt模式下,会影响万年历的精度?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我没看具体寄存器的事,在更新之前,禁用自动唤醒就行了,库函数里面禁用自动唤醒,也是操作的这个寄存柜,CR2位,你说的哪个自动预装载 就是设置休眠时间的那个吧,分成高8位和低8位
RTC_WakeUpCmd(ENABLE);
这句话是不是一执行就开始计时?
每次从休眠模式被这个唤醒的话,如果不用RTC_WakeUpCmd(DISABLE);就会重新计时,到时间就中断?
一周热门 更多>