单片机串行口

单片机接受或发送数据完一帧数据后TI或RI 会自动置位,提示CPU 去响应中断,问题是我不需要进入中断,CPU查询TI RI ,为什么要清零呢?莫非是只有将其清零才可以处理下一帧数据么?不清零会出现什么问题?谢谢
51单片机,我就想知道查询方式下为什么要清零,不清零的话是不是就不发送下一帧数据了?书上讲的都不太明白。

RI置位表示已经收到一个数据,这时串口仍然可以接收数据,只是会造成新的数据把旧的数据覆盖掉。TI置位表示发送完成,你可以继续发送下一字节。

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

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

如果TI不清零,则CPU认为已经发送完,这样的结果就是一个字节还没发送完成,就写入另一个要发送的字节,造成串口发送的数据错误或串口无法工作,明白?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-11
不清零,当然可以,也能继续发送,也能继续接收。
但是如果不清零,保留着这个1,那么你就不知道,它们什么时候会出现下一个1了。
当然,如果不想继续发送或接收,完全可以不清零。
第2个回答  2010-12-10
不知道你的是什么单片机,可以将单片机串口配置为非中断模式阿

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网