标题: 关于串口的通讯while(!TI);的解释 [打印本页]

作者: 51黑er    时间: 2015-11-10 02:01
标题: 关于串口的通讯while(!TI);的解释
在串口的通讯的时候,看到一个语句:
如下:
       while(!TI);
当时不明,后来才看明白,现记录如下:
首先,TI是串口发送完成标志,发送完成TI置为1

while(!TI);的意思是等待串口发送完成
当串口发送未完成时:
TI值为0,(!TI)值为1,;号前面无语句,故一直在此循环
当串口发送完成时:
TI值为1,(!TI)值为0,while(!TI)不满足循环,退出,继续执行下一条


因为TI在串口发送后,硬件自动置1,
我们需要重新发送数据的话,就需要在置1后,软件清零,然偶继续发送我们需要发送的数据!!

eg:
while(!TI=1);   //等待串口发送完成TI=0;              //软件清零,发送下一个数据
while(!RI=1);  //等待串口接收完成
RI=0;            //软件清零。接收下一个数据

值得注意的一点是:
while后面的括号里面的程式,(!TI=1)=(!TI),同样,(!RI=1)=(!RI)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1