keil在使用了编译优化之后,会将一下编译器认为没意义的指令优化掉,不执行,但有时候用户代码需要使用阻塞延时,如下代码:
void user_delay(uint16_t cnt)
{
for(uint16_t i=0; i<cnt; i++)
{
for(uint16_t j=0; j<65530; j++);
}
}
上述代码的延时会被优化掉,如何避免?
方案一:使用volatile 定义变量,能避免上述优化带来的问题。实测OK。
【无标题】keil编译优化:会将需要的阻塞延时优化掉
最新推荐文章于 2024-07-21 17:40:28 发布