|
在串口的通訊的時候,看到一個語句:
如下:
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)
|
|