int Data;
SBUF=Data;
while(!TI);
while(!TI);这一句是在执行完上一条指令后立即进行还是等数据发送完后才进行?
假如SBUF=Data;执行,到发送完毕TI置位有一段时间,这段时间我们人为放大以便说明。问题就是单片机CPU是在执行一位一位的串口发送;
还是由另一个独立单元(类似于定时器)在执行串口发送,而单片机CPU已经在等待while(!TI);
这个发送时由CPU进行的吗?
也就是说发送完毕了,机器自动对TI置1,然后CPU再执行while(!TI)
不知是不是这样理解?
是,TI=1后 执行 while(!TI)后,就走了。while(!TI)是TI=0时在这里等待。