找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7328|回復(fù): 0
收起左側(cè)

關(guān)于串口的通訊while(!TI);的解釋

[復(fù)制鏈接]
ID:94349 發(fā)表于 2015-11-10 02:01 | 顯示全部樓層 |閱讀模式
在串口的通訊的時候,看到一個語句:
如下:
       while(!TI);
當時不明,后來才看明白,現(xiàn)記錄如下:
首先,TI是串口發(fā)送完成標志,發(fā)送完成TI置為1

while(!TI);的意思是等待串口發(fā)送完成
當串口發(fā)送未完成時:
TI值為0,(!TI)值為1,;號前面無語句,故一直在此循環(huán)
當串口發(fā)送完成時:
TI值為1,(!TI)值為0,while(!TI)不滿足循環(huán),退出,繼續(xù)執(zhí)行下一條


因為TI在串口發(fā)送后,硬件自動置1,
我們需要重新發(fā)送數(shù)據(jù)的話,就需要在置1后,軟件清零,然偶繼續(xù)發(fā)送我們需要發(fā)送的數(shù)據(jù)!

eg:
while(!TI=1);   //等待串口發(fā)送完成TI=0;              //軟件清零,發(fā)送下一個數(shù)據(jù)
while(!RI=1);  //等待串口接收完成
RI=0;            //軟件清零。接收下一個數(shù)據(jù)

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


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表