benlarden 发表于 2016-10-19 14:36:19

关于stm32cubemx 的HAL_Delay()函数

__weak uint32_t HAL_GetTick(void)
{
return uwTick;
}

__weak void HAL_IncTick(void)
{
uwTick++;
}

__weak void HAL_Delay(__IO uint32_t Delay)
{
uint32_t tickstart = 0;
tickstart = HAL_GetTick();
while((HAL_GetTick() - tickstart) < Delay)
{
}
}

这里使用这个延时函数有没有这种情况,当HAL_GetTick()的计数正好要溢出时,是不是延时就不准了?


任风吹吹 发表于 2016-10-19 16:08:32

你在调试模式下下计算下1-0xffffffff等于多少后,在回过头来想想这个问题.:lol

benlarden 发表于 2016-10-19 16:27:59

任风吹吹 发表于 2016-10-19 16:08
你在调试模式下下计算下1-0xffffffff等于多少后,在回过头来想想这个问题. ...

只是时间稍微长点,如果一直不复位,这个问题还是有的,关键的地方还是最好不要用,碰到致命打击。。。

任风吹吹 发表于 2016-10-19 16:31:55

benlarden 发表于 2016-10-19 16:27
只是时间稍微长点,如果一直不复位,这个问题还是有的,关键的地方还是最好不要用,碰到致命打击。。。 ...

你还是没有按我说的动手测试一下,答案是这个是不会有问题的,我已经告诉你结果了,结合大学里学的计算机原理,你自己去测试弄明白吧。

benlarden 发表于 2016-10-19 16:53:53

任风吹吹 发表于 2016-10-19 16:31
你还是没有按我说的动手测试一下,答案是这个是不会有问题的,我已经告诉你结果了,结合大学里学的计算机 ...

明白了,非常感谢!~~:lol

asssdz-382474 发表于 2016-10-19 21:22:34

:):):):):):):):)
页: [1]
查看完整版本: 关于stm32cubemx 的HAL_Delay()函数