Keil软仿真STM32

时间:2021-11-06 19:46:56

当使用Keil软仿真STM32时,SystemClock设置为72MHz,使用循环延迟1s钟,实际时间明显大于1S钟,但是Keil调试窗口显示的确实是1s钟
//毫秒级的延时
void delay_ms(u16 time)
{    
   u16 i=0;  
   while(time--)
   {
      i=12000;  //自己定义
      while(i--) ;    
   }
}

delay_ms(1000)

经过反复检查考虑,可能原因是

因为Keil支持72MHz时太慢导致,将SystemClock改成10MHz,修改循环函数,效果好了很多。

void delay_ms(u16 time)
{
  u16 i=0;
  while(time--)
  {
    i=1600;//不太精确
    while(i--);
  }
}