单片机串行口

单片机接受或发送数据完一帧数据后TI或RI会自动置位,提示CPU去响应中断,问题是我不需要进入中断,CPU查询TIRI,为什么要清零呢?莫非是只有将其清零才可以处理下一帧... 单片机接受或发送数据完一帧数据后TI或RI 会自动置位,提示CPU 去响应中断,问题是我不需要进入中断,CPU查询TI RI ,为什么要清零呢?莫非是只有将其清零才可以处理下一帧数据么?不清零会出现什么问题?谢谢
51单片机,我就想知道查询方式下为什么要清零,不清零的话是不是就不发送下一帧数据了?书上讲的都不太明白。
展开
 我来答
ATF144X
2010-12-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4620万
展开全部
RI置位表示已经收到一个数据,这时串口仍然可以接收数据,只是会造成新的数据把旧的数据覆盖掉。TI置位表示发送完成,你可以继续发送下一字节。

如果不清零,那是什么后果?

假定刚开始RI为0,在收到一字节数据后RI为1,CPU查询得知RI为1就从SBUF读取数据,所以说RI为1时表示收到了数据,如果不清零,单片机每次查询的时候都“认为”是收到了数据而读取SBUF,这样即使串口没有收到新的数据,CPU也在不断的读,只是读取收到的那一字节!所以不把RI清零,CPU就无法确定是否收到了新的数据,这个你能理解吧?

如果TI不清零,则CPU认为已经发送完,这样的结果就是一个字节还没发送完成,就写入另一个要发送的字节,造成串口发送的数据错误或串口无法工作,明白?
做而论道
高能答主

2010-12-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
不清零,当然可以,也能继续发送,也能继续接收。
但是如果不清零,保留着这个1,那么你就不知道,它们什么时候会出现下一个1了。
当然,如果不想继续发送或接收,完全可以不清零。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongchengdiao
2010-12-10 · TA获得超过988个赞
知道小有建树答主
回答量:579
采纳率:0%
帮助的人:352万
展开全部
不知道你的是什么单片机,可以将单片机串口配置为非中断模式阿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式