当使用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--);
}
}