标题: 关于单片机串口中断RI置零的问题 [打印本页]

作者: 大魔王小张    时间: 2020-3-8 00:30
标题: 关于单片机串口中断RI置零的问题
uchar UartReceiveByte()
uchar dat;
while(!RI)
RI=0;
dat=SBUF;
  return (dat);
}

我用串口发送看了一下 RI在接收第一帧数据之后就置不了零 一直是1 导致我不能连续接收数据,这是咋回事啊?有没有大佬帮忙看看?是硬件的问题吗??

作者: csmyldl    时间: 2020-3-8 03:02
while(!RI)此语句后加一分号就可,即改为
while(!RI);
作者: wulin    时间: 2020-3-8 06:33
while(!RI);//少分号
RI=0;
作者: xuyaqi    时间: 2020-3-8 08:41
RI 一直是1说明一直有数进来,你就连续保存在数组里,直到RI不等于1.
作者: tyrl800    时间: 2020-3-8 08:45
uchar UartReceiveByte()
{uchar dat;
while(!RI);
RI=0;
dat=SBUF;
  return (dat);
}  试试看
作者: huang123456789    时间: 2020-3-8 09:44
去!,RI=1的话,!RI=0,不执行下面的语句
作者: 大魔王小张    时间: 2020-3-8 10:53
csmyldl 发表于 2020-3-8 03:02
while(!RI)此语句后加一分号就可,即改为
while(!RI);

感谢 问题已经解决
作者: 大魔王小张    时间: 2020-3-8 10:54
谢谢各位 问题已经解决
作者: 图南o    时间: 2020-3-9 10:03
本帖最后由 图南o 于 2020-3-11 17:36 编辑

感谢大神




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1