单片机的子程序中必须要有死循环吗?

来源:百度知道 编辑:UC知道 时间:2024/06/11 22:33:32
在程序中有这样一个子程序
void SendData(uchar Dat)
{ uchar i=0;
SBUF=Dat;
while(1)
{
if(TI)
{ TI=0;
break;
}
}
}
我尝试着把while(1)去掉也可以运行啊

严格讲是不能去掉的。

串口发送数据要8个时钟,可能你的其他的程序本省造成的延时比系统的8个时钟时间还要长,所以不会出错。如果发送的间隔短的话,很可能造成时序上的错误