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

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

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

TI==0时执行空语句,这个是使用在串口中的,就是等待数据发送完成。通讯的时候TI==0,结束时硬件自动将TI==1,此时再次通讯需要将TI==0;这就是上面语句的意思。

这种写法是用在条件语句中的。 例如:while(!TI);或者while(!RI);另一种写就是while(TI==0);或者while(RI==0); 这两种写法是等价的,怎么写都可以,就看个人的爱好了,这个没有什么硬性的规定。 写程序时,会看到这样写的: while(!TI);TI=0,前...

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

是的,一般这样的语句是错误的,它要么一下子跳过,要么死循环。

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

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

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

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

网站地图

All rights reserved Powered by www.1862.net

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