找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请教C51单片机串口收发出现的奇怪问题,返回数据不正确

[复制链接]
跳转到指定楼层
楼主
ID:593706 发表于 2019-8-8 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的代码是自己写的串口通信收发程序。从PC发给单片机16进制的数据,单片机收到后原样返回给PC机,程序能够运行,但单片机返回的数据有时候字符不正确(发送十次大约有一二次返回给PC的数据不正确,比如PC机发出的是7E,经过单片机返回的数据PC收到后不是7E),请教高手,看看是什么原因。


rs232:;串口中断处理程序
push dpl; 压栈保存断点
push dph;压栈保存断点
jnb ri,rett;判断是不是串口接收中断,不是接收中断就返回
mov a,sbuf;接收上位机发来的一个字节
clr ri;清接收中断
clr ti;清发送中断、
acall cc;调用延时程序,做为字符间隔
mov sbuf,a;将刚才上位机发来的一个字节通过串口再发送到上位机
acall cc;调用延时程序,做为字符间隔
clr ti;清发送中断
clr ri;清接收中断
ajmp rett;转到中断返回子程序


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:276971 发表于 2020-7-20 11:07 | 只看该作者
可能是波特率不准确!用示波器看下一个BIT的脉宽是否正确
回复

使用道具 举报

板凳
ID:636538 发表于 2020-7-20 11:20 | 只看该作者
51单片机的9600波特率12MHZ的出错率为6%,如果是11.0952还会好点
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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