找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5472|回复: 3
收起左侧

串口的多机通讯while(!RI);的解释

[复制链接]
ID:94349 发表于 2015-11-10 02:08 | 显示全部楼层 |阅读模式
在串口的多机通讯的时候,看到一个语句:
如下:
       while(!RI);
当时不明,后来才看明白,现记录如下:
首先,TI是串口发送完成标志,发送完成TI置为1

while(!RI);的意思是等待串口接收完成
当串口接收未完成时:
RI值为0,(!RI)值为1,;号前面无语句,故一直在此循环
当串口接收完成时:
RI值为1,(!RI)值为0,while(!RI)不满足循环,退出,继续执行下一条


因为RI在串口接收后,硬件自动置1,
我们需要重新接收数据的话,就需要在置1后,软件清零,然后继续接收我们需要接收的数据!!

eg:
while(!TI=1);   //等待串口发送完成
TI=0;              //软件清零,发送下一个数据
while(!RI=1);  //等待串口接收完成
RI=0;            //软件清零。接收下一个数据

值得注意的一点是:
while后面的括号里面的程式,(!TI=1)=(!TI),同样,(!RI=1)=(!RI)


回复

使用道具 举报

ID:79544 发表于 2015-12-8 13:16 | 显示全部楼层
谢谢分享,学习啦!顶
回复

使用道具 举报

ID:67573 发表于 2016-1-8 17:07 | 显示全部楼层
同求  顶你一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表