该问题由某客户提出,发生在STM32F103RBT6 器件上。据其工程师讲述:其产品为车载GPS 导航监 控设备,其中使用了STM32 作为主控器件,负责管理整个设备。在该产品的设计中,使用了STM32 的RTC,并将其计时显示在产品的屏幕上。计时显示的更新是由RTC 的秒中断来完成的,即由RTC 的秒中断服务程序从RTC 中读出新的时间并更新到相关的变量中,再触发屏幕刷新程序更新屏幕上的 显示。在测试时发现屏幕上显示时间的秒部分走时不均匀,时快时慢,甚至会丢掉某个中间值而发生 跳变。对该显示时间做长时间计时的测量,发现其长时间计时是准确的,即秒长度的平均值是准确 的。将程序中的其它中断关掉,只保留RTC 的秒中断,问题依旧。通过在RTC 秒中断服务程序中加 入对GPIO 翻转的代码来测量RTC 秒中断响应的时间间隔,发现其是均匀的,如图(一)所示,说明 并非RTC 的秒中断响应不及时而导致显示时间的波动。 问题详细描述以及ST官方解答见文档: |
学习一下