STM32调试与正常运行问题,RTC不实时更新问题
本帖最后由 西奥伟 于 2018-10-17 13:34 编辑咨询一下大家,是否在开发中也遇到过这样类似的问题,这里我先描述一下问题,我想通过RTC来实时获取我当前操作打开智能锁的操作时间,但是,在这个RTC_GetDateTime函数中获取到的参数Current的值,若像图一中打断点调试,最后,操作锁的时间Current的值只有time中的SubSeconds改变;若像图二中,在RTC_GetDateTime函数里面的两个函数分别打断点,就能够获取到当前实际操作锁具的时间。也就是说正常运行,当前时间一直就是上一次的值,没有实时改变,得出来的不是实时值。请教一下论坛的朋友们,是否遇到过这样的问题?
其实要确定执行时间,直接使用读定时器读计数值比用RTC方便多了,读RTC时执行代码够多,还需要等到秒中断到了才更新计数值。 本问题已解决,查看RTC寄存器,RTC的寄存器的值是在实时改变的,但是,首先是RTC_TR寄存器(设置时间),然后是RTC_DR寄存器(设置日期),所以,应该先设置RTC的时间更新HAL_RTC_GetTime,然后再设置RTC的日期更新HAL_RTC_GetDate,最后,就能够解决HAL库中RTC时间更新不正确的问题了。
页:
[1]