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

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

首先你别忘了,while (TI== 0); 后面是有分号的 当发送完成,TI==1,所以while(TI==0);这个语句是不会执行的,会直接执行TI=0;即软件清零。 当发送未完成时,才会执行while (TI== 0);这个语句。 while(TI==0); TI=0;是两个句子 不像 while(TI==...

TI是串口发送完成标志,发送完成TI值为1 while(!TI) 的意思就是等待串口发送完成(未完成TI值为0,(!TI)值为1,循环,直到串口发送完成,TI为1,(!TI)值为0,退出循环,向下执行)

这个主要是单片机做串口发送用的,通常是当传送完成后TI=1,而判断TI是否等于1共有两种方法,一种是查询另一种就是串口中断,而你给出的就是查询方法,所以要无限循环的查询下去, while(1) 就是用于查询的,但要记住因为是无限循环所以这个最好...

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

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

你是发送不出数据,串口寄存器配置检查一下,另外看看你这发送是不是要进去中断去。看看中断允许了么,

在C语言里,“~”表示按位取反,就是按变量的2进制形式取反,比如~00000001=11111110。而“1表示“逻辑非”,如果TI=0(假),!TI=1(真),如果TI不为0(真),那么!TI=0(假) “while(~TI);”就是"while(~TI!=0);"的意思,就是说如果TI按位取反后不是000...

TI ——发送中断标志位 可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 RI ——接收中断标志位 可寻址标志位。接收完第8位数据后,该位由硬件置位...

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

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