需求
stm32 使用 hal 设置 rtc 时间之后,再读出来发现,年的数据不对,其他数据是正常的。
解决
经过多次调试,发现问题是出现在 weekend 的设置上面。如果不设置 weekend,会导致随即值在左移的时候,会干扰的年份。
在寄存器中 weekend 只有3位,如果 weekend 中的随即值超过 8,就会干扰年份了。
解决的方法也很简单,要不就是用公式计算出 weekend,要不就是直接设置 weekend 为 0 即可。
stm32 使用 hal 设置 rtc 时间之后,再读出来发现,年的数据不对,其他数据是正常的。
经过多次调试,发现问题是出现在 weekend 的设置上面。如果不设置 weekend,会导致随即值在左移的时候,会干扰的年份。
在寄存器中 weekend 只有3位,如果 weekend 中的随即值超过 8,就会干扰年份了。
解决的方法也很简单,要不就是用公式计算出 weekend,要不就是直接设置 weekend 为 0 即可。