STM32 的精确延时方式

2019-08-14 19:59发布

STM32 和外部芯片通讯, 数据位的传输需要非常精确的时间控制, 一个位20us, 之前想用滴答定时器做延时 20us,发现并不准确。 现在的做法是采用了一个for循环来延时。 如下:
for( j=0;j<108;j++ ); //20us
但是发现了一个问题,就是 我修改其他地方的代码然后编译,这个for循环的延时有时候会不准确。 按道理来说这个语句是一个独立的语句,变量j是一个局部变量,每次执行的结果应该都是一样才对。 为何会出现这种受到其他地方代码影响的问题? 谁遇见过这情况吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。