8065|10

107

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

请问 PC机与AT89S51串口通信为什么会错呢? [复制链接]

各位高手,我上位机用的串口助手V2.2 下位机是51单片机,两个之间的硬件链接绝对正确,绝对可靠。且二个比特率都是9600,最常用最简单那种工作方式。用单片机向PC机发送数据永远正常,没有错误。

可是我做实验时候用串口助手发送4个16进制数 比如“F8 00 AA 8F”,51再把接收到的4个16进制数发送给PC,问题就出来了,串口助手显示的接收到的4个16进制数没有几次是正确的。我郁闷 这是为什么啊?我觉得是我51的接收程序有问题,可是我怎么也查不出来啊,请指教 谢谢。

代码:
void init_uart()            //初始化串口函数
{
  TMOD = 0x20;
  TH1 = 250;
  TL1 = 250;
  TR1 = 1;
  PCON = 0x80;
  SCON = 0x50;
}

void recev()    //接收程序
{
   RI = 0;
   while(!RI)
   sheet[0] = SBUF;
   RI = 0;

   RI = 0;
   while(!RI)
   sheet[1] = SBUF;
   RI = 0;

   while(!RI)
   sheet[2] = SBUF;
   RI = 0;

   while(!RI)
   sheet[3] = SBUF;
   RI = 0;

  }

开始我觉得上面这个这个程序不好,写成循环的也不行,望高手严厉批评
void recev()    //接收程序
{
   for(k=0;k<4;k++)
   {
     RI = 0;
     while(!RI)
     sheet[k] = SBUF;
   }

}
此帖出自51单片机论坛

最新回复

读串口最好是采用中断,在中断中处理,这样不必等RI标志,只要进入中断函数,如果没有发送数据,那么必然是SBUF收到一个字节,这时读SBUF一定没错。如果前面发送了数据,那么有可能是发送产生的中断,这时就要判断RI,如果置为,就可以读SBUF。有关串口中断函数,看相关的C51书,都有。  详情 回复 发表于 2010-4-14 23:23
点赞 关注
 

回复
举报

2749

帖子

0

TA的资源

裸片初长成(初级)

沙发
 
while(!RI)
会不会是分号问题,while(!RI);,然后再读SBUF。
此帖出自51单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

95

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
LS说的对,应该是缺分号
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

71

TA的资源

管理员

4
 
问题解决了没?
此帖出自51单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

536

帖子

0

TA的资源

五彩晶圆(初级)

5
 
需要事先了解一下pc的串口发送接收原理。
在通讯中最好做简单的协议来判断发送接收的起始和终止。因为串口发出的有可能是发送缓冲区中残余的部分,可能导致发生接收不一致的情况出现。
另外,单片机最好是使用接收中断来处理,while始终是不能及时响应数据的接收的!
此帖出自51单片机论坛
 
 
 

回复

107

帖子

0

TA的资源

纯净的硅(中级)

6
 

等等啊

今天实习+开题审查

晚上再做实验看看,我觉得查询形式接收就应该没问题吧。楼上说的中断接收数据的形式我晚上也再试试

谢谢大家
此帖出自51单片机论坛
 
 
 

回复

2770

帖子

0

TA的资源

裸片初长成(中级)

7
 
閺屻儳婀呴張顒€绗橀崗銊╁劥鐠併劏顔戦敍宀冾嚞閻ц缍�閹存牞鈧拷濞夈劌鍞�
此帖出自51单片机论坛
 
 
 

回复

107

帖子

0

TA的资源

纯净的硅(中级)

8
 

回复 7楼 jxb01033016 的帖子

閺屻儳婀呴張顒€绗橀崗銊╁劥鐠併劏顔戦敍宀冾嚞閻ц缍�閹存牞鈧拷濞夈劌鍞�
此帖出自51单片机论坛
 
 
 

回复

107

帖子

0

TA的资源

纯净的硅(中级)

9
 
閺屻儳婀呴張顒€绗橀崗銊╁劥鐠併劏顔戦敍宀冾嚞閻ц缍�閹存牞鈧拷濞夈劌鍞�
此帖出自51单片机论坛
 
 
 

回复

2749

帖子

0

TA的资源

裸片初长成(初级)

10
 
閺屻儳婀呴張顒€绗橀崗銊╁劥鐠併劏顔戦敍宀冾嚞閻ц缍�閹存牞鈧拷濞夈劌鍞�
此帖出自51单片机论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

11
 

读串口原则错误

閺屻儳婀呴張顒€绗橀崗銊╁劥鐠併劏顔戦敍宀冾嚞閻ц缍�閹存牞鈧拷濞夈劌鍞�
此帖出自51单片机论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 8

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表