volatile 对延时影响

volatile uint32_t delay;

void delay1ms(uint32_t n)
{
  delay = n;
  while(delay);
}

void delay_handle(void)
{
  if(delay)
  {
    delay --;
  }
}

 

注意:delay需使用volatile 修饰,否则在编译器不同优化等级下,while(delay)为死循环。

posted @ 2022-08-24 12:39  hifish  阅读(4)  评论(0)    收藏  举报