![]() |
aiwenxue999 發表于 2019-5-20 19:33 瞎說, 我一直也是這樣用, 從來沒有出現 被中斷清除掉數據。 他是發送的時候,進入中斷,但是 沒有if(TI) TI=0; 所以, 馬上就又跳出中斷,也就是進中斷啥也沒有做, 然后再返回 等待 while*!TI)這里執行,也就是等待發送完成,手動清除TI=0; 你不信,可以多測試試一試~ |
找了好久就這帖明白 |
void Send_One_Byte(uchar Byte) { SBUF = Byte; ES=0; while(!TI); //TI == 1 跳出循環 TI = 0; ES=1; } 要加ES=0;和ES=1;否則在發送數據的時候,容易被中斷清除數據。 |