你这段代码应该是单片机程序,实现的功能是通过串口(UART)发送数据。其中TI_1,应该是数据发送中断标志位,当TI_1=1时表明可以发送一帧数据了,该标志位应该在在串口控制寄存器中;SBUF1是数据缓冲寄存器,将数据写入该寄存器,单片机会自动发送数据的。
void tx1(unsigned char c) //定义一个发送数据函数
{ //
while(TI_1==0); //用查询方式实现数据的发送,一直等待,直到TI_1=1时。当
//TI_1=1时,表示单片机准备好了,可以发送数据了
TI_1=0; //数据发送中断标志位不能自动清零,必须软件手动清零
SBUF1=c; //向数据缓冲器写要发送的数据 C ,这样数据 C 就通过串口
//(UART)发送出去了
} //
因为你只提供了部分代码,所以这些都是我推测出来的,希望对你能有帮助
summitily 和comerz2010 ,你们都好牛,这么抽象的程序也能看懂。。。
这个函数像是在多CPU环境下的内核程序。Tl_1应该是一个外部变量,当其他线程将Tl_1的值改变时,函数将退出while(TI_1==0)继续向下执行。Tl_1相当于起到一个锁的作用。这个锁类似于操作系统使用的自旋锁。使用上有严格限制,否则将会是使CPU无法释放,导致系统失去响应。