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;否则在发送数据的时候,容易被中断清除数据。 |