请认真看看以下延时函数是否正确,并且指出错误:(考考C语言功底)
void delay_ms(unsigned int xms) //delay x ms
{
unsigned int x,y;
for(x=xms;x>=0;x--)
for(y=124;y>=0;y--);
}
废话少说,上正确代码:
void delay_ms(unsigned int xms) //delay x ms
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=124;y>0;y--);
}
原因分析:
x和y定义的是无符号整形,如果等于0的话它还在执行一次减一,以至于for变成while死循环。
我懒得写delay函数,直接去csdn嫖代码,我一直以为别人肯定是跑通了才发出来,就一直奉为圭臬。
于是我花了大量的时间去研究:
Proteus是否有问题,还加了晶振电路

研究Keil是否配置错误

重复编写代码。。。。
只能说,网上的东西是个人都能写(比如像我这种废物csdn就有好几万的访问量,经不住考验,一定要持有怀疑的态度。也请大家以后把代码跑通了再发上去吧,毕竟像我这种新手真的很痛苦。





![[软件工具]AI软件离线表格识别工具使用教程图像转excel转表格可复制文字表格导出实时截图识别成表格](https://img-blog.csdnimg.cn/direct/b4c897bf1ee244c8a21d66f2a6a9b0e0.jpeg)









![排序链表[中等]](https://img-blog.csdnimg.cn/direct/2352d0d9fb4346a1b8386002d583e345.png)



