51单片机串口自收发,产生中断时TI是先于RI置位吗?为什么? 10
在PROTEUS里直接连接RXD和TXD引脚,在方式1下仿真结果是TXD引脚发出8位数据到自身的RXD上后,TI比RI早约0.06ms置位,使单片机进入串口中断;但看教材...
在PROTEUS里直接连接RXD和TXD引脚,在方式1下仿真结果是TXD引脚发出8位数据到自身的RXD上后,TI比RI早约0.06ms置位,使单片机进入串口中断;
但看教材所述串口工作过程:TI是数据发送完毕时,RI是数据接收完时置位的。按这个说法这种引脚直连的自身发收过程应该是二者同时置位(进入串口中断)啊?懂的老鸟指点一下?谢谢!! 展开
但看教材所述串口工作过程:TI是数据发送完毕时,RI是数据接收完时置位的。按这个说法这种引脚直连的自身发收过程应该是二者同时置位(进入串口中断)啊?懂的老鸟指点一下?谢谢!! 展开
展开全部
TI发送完数据就置位。数据位发送完,还要继续发停止位,一般是1个位的1。
接收时收到停止位才能算接收完,RI才有可能置位(某些型号的单片机还有可能要进一步识别错误,如果接收出错,有可能不置位RI)。
接收时收到停止位才能算接收完,RI才有可能置位(某些型号的单片机还有可能要进一步识别错误,如果接收出错,有可能不置位RI)。
更多追问追答
追问
你说的与教材所述不一致。教材说发送也是在发送停止位时才令TI置位,而非你说的在发送停止位之前就置位
追答
你的理解不准确。
TI不是在停止位发送完的时候置位,是在开始发送停止位的时候置位。
如果有疑问,找个芯片的手册,看时序图,不要看教材,不一定准确。
逻辑上,数据位发送完成,停止位开始发送是同一个事情,一个结束,就意味着另一个的开始。
所以说,TI在发送完数据位的时候就置位 和 发送停止位的时候TI置位,这两个意思是一样的。
展开全部
仿真软件的原因吧
0.06ms是软件给你说的?
如果单片机自己发自己收
肯定是先发送完成,触发TI,进入串中断
但是如果你去查询中断标志时,数据已经接收到了,触发了RI,但程序已经在中断里了,所以无法再进入中断了
所以,我觉得如果在中断里查询TI和RI都是1
虽然像是同时置位,但还是有先后
0.06ms是软件给你说的?
如果单片机自己发自己收
肯定是先发送完成,触发TI,进入串中断
但是如果你去查询中断标志时,数据已经接收到了,触发了RI,但程序已经在中断里了,所以无法再进入中断了
所以,我觉得如果在中断里查询TI和RI都是1
虽然像是同时置位,但还是有先后
追问
“肯定是先发送完成,触发TI”
为什么?原因你没说清楚啊
追答
什么原因?
先发送完成的原因?
单片机自行收发
不发出去,怎么收到?
既然先发,肯定发送先完成了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询