我们知道系统嘀嗒时钟使用了一个u32类型的变量每毫秒加1,约49天回归0。那么问题来了,如果在这个变量剩余如255(等于0xFFFFFF00)时就要回归0,这时定时如1000毫秒,而hal库中是先记录首个变量值0xFFFFFF00,而后就是用新值减去0xFFFFFF00,看是否大于1000。那么如果要大于1000必须等到变量回归0后递增到1001,这是延时的总时间是不是255+1001=1256毫秒呢?那这个定时不就不准了吗 |
对于STM32来说,滴答器是向下计数的、且有对应的标志位。所以你只需要写入计数值,然后监视标志位(循环或者中断)。 |
看清了,所答非所问 |