Systick是不是解决不了这个CPU忙等的现象?

2019-07-21 00:46发布

我们使用延时时,通常都是使用几个for循环进行忙等的延时,那么我看了这个Systick好像也是一种忙等的延时,如下PPT中的程序,这个delay函数一定是忙等啊?
我觉得除了这个systick计时确实要比写for循环要准,但是这个systick定时器跟写for循环其实都是一种忙等的思路,那么systick定时器到底有哪些优点呢?

static __IO uint32_t TimingDelay; void Delay(__IO uint32_t nTime) {    TimingDelay = nTime;    while(TimingDelay != 0);  //这不 就是在忙等吗?程序必须等着他搞完才能做其它的事情,那这个systick有啥优势啊? } void SysTick_Handler(void) {     if (TimingDelay != 0x00)      {        TimingDelay--;      } }  int main(void)  {  …     if (SysTick_Config(SystemCoreClock / 1000)) //systick时钟为HCLK,中断时间间隔1ms      {      while (1);      }     while(1)      { Delay(200);//2ms      …      } }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。