www.1862.net > whilE(TI==0); TI=0;什么意思?详细点啊!

whilE(TI==0); TI=0;什么意思?详细点啊!

因为1为真,所以while(1)下面{}里的内容将一直循环进行,无法跳出,通常放在主程序中 而while(T==0),这句是试探为0,若为0,即为真,将循环执行{}中的程序,不为零,直接跳出while下面得{}

也许程序的原意是while(!TI) TI=0; 吧 。 当TI !=0 时 就执行 TI=0 。 多了个分号,就变成 当 TI !=0 时 ,死循环。

while(!TI) { _nop_(); } 的意思是当TI=0时,一直执行空操作,知道TI=1,退出。

这是通过串口发送字符串的程序。 只要没有到字符串的末尾,就发送。

打个比方说, cpu 处理 "打印 100000 个字" 只需要 0.001 秒 但打印 100000 个字到屏幕上, 却需要 1 秒, 然後下一道指令是 "打印另外 100000 个字". 这个 while 的作用, 就是等完这 1 秒, 让那 100000 个字完成打印到屏幕上, 然後才开始打印另外 ...

当发送结束T1=1;这表明结束。 所以 while(TI==0); 这里没错。 发送结束后把TI设置为0,表明下次继续发 因为是在while(1)里,当 while(trdata[i]!=0x00) 里的I到达0xx,既跳出此循环 回到while(1),所以I又为0.。。这循环不会中断~ 当i 又回到0...

void TXBYTE( unsigned char i) // 这是一个向单片机串口总线发出1字节数据的函数 { TI=0; // 将 TI 置 0 SBUF=i; // 将 i 存入串口缓冲 while(!TI); // 直到数据已成功发送( TI 被置 1) TI=0; // 将 TI 置 0 } SBUF 和 TI 是单片机的寄存器,...

上位机指的是什么,是PC还是单片机,如果是PC就用串口助手,设置与下位机相同的波特率,并选择16进制接收就可以了。如果是自己编写的PC端串口软件,那就要看基以哪个平台编写的。如果上位机也是51单片机,那么: while(!RI);//等待下位机发送数...

0xff 为16位进制数,‘A’ 也可以转换成10进制的数,执行意思就是 首先给sbuf赋值,{当T1是0时,T1=0; 在执行_delay_us(2);}此处用了T1 形成了死循环,这个方法内部赋值有点问题

网站地图

All rights reserved Powered by www.1862.net

copyright ©right 2010-2021。
www.1862.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com