找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3432|回复: 8
打印 上一主题 下一主题
收起左侧

关于单片机串口中断RI置零的问题

[复制链接]
跳转到指定楼层
楼主
ID:683881 发表于 2020-3-8 00:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar UartReceiveByte()
uchar dat;
while(!RI)
RI=0;
dat=SBUF;
  return (dat);
}

我用串口发送看了一下 RI在接收第一帧数据之后就置不了零 一直是1 导致我不能连续接收数据,这是咋回事啊?有没有大佬帮忙看看?是硬件的问题吗??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-3-8 03:02 | 只看该作者
while(!RI)此语句后加一分号就可,即改为
while(!RI);
回复

使用道具 举报

板凳
ID:213173 发表于 2020-3-8 06:33 | 只看该作者
while(!RI);//少分号
RI=0;
回复

使用道具 举报

地板
ID:94031 发表于 2020-3-8 08:41 | 只看该作者
RI 一直是1说明一直有数进来,你就连续保存在数组里,直到RI不等于1.
回复

使用道具 举报

5#
ID:275826 发表于 2020-3-8 08:45 | 只看该作者
uchar UartReceiveByte()
{uchar dat;
while(!RI);
RI=0;
dat=SBUF;
  return (dat);
}  试试看
回复

使用道具 举报

6#
ID:352653 发表于 2020-3-8 09:44 | 只看该作者
去!,RI=1的话,!RI=0,不执行下面的语句
回复

使用道具 举报

7#
ID:683881 发表于 2020-3-8 10:53 | 只看该作者
csmyldl 发表于 2020-3-8 03:02
while(!RI)此语句后加一分号就可,即改为
while(!RI);

感谢 问题已经解决
回复

使用道具 举报

8#
ID:683881 发表于 2020-3-8 10:54 | 只看该作者
谢谢各位 问题已经解决
回复

使用道具 举报

9#
ID:688584 发表于 2020-3-9 10:03 | 只看该作者
本帖最后由 图南o 于 2020-3-11 17:36 编辑

感谢大神
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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