RS232串口通信程序用串口调试助手,发送数据与接收数据不符?

#include<reg52.h>unsignedchara;unsignedcharflag;//标志是否收到数据voidmain(){TMOD=0x20;//设置定时... #include<reg52.h>
unsigned char a;
unsigned char flag;//标志是否收到数据
void main()
{
TMOD=0x20;//设置定时器1为工作方式2,即自动再装入8位数据
//PCON=0x80;
TH1=0xfd;//即开始装入
TL1=0xfd;//即开始装入
//以上三条指令是设置波特率为9600
TR1=1;//启动定时器1
REN=1;
SM0=0;
SM1=1;
//SCON=0x50;//使寄存器工作为方式一,并开启串口
EA=1;//开启总中断
ES=1;//开启串口中断
while(1)
{

if(flag==1)
{
ES=0;
flag=0;
SBUF=a;//a为数据接收方
while(!TI);//当TI=1时表示发送完毕
TI=0;
ES=1;
}
}
}

void seri() interrupt 4
{
//if(RI==1)//判断是否收到数据
//{
RI=0;
P1=SBUF;//SBUF接收缓冲区,同时检验数据是否收到
a=SBUF;//准备发出去a
flag=1;//收到数据
//}
}
如16进制发送aa bb cc dd输出显示是对的但配合发光二极管测试数据接收出现错误,还有发送数字直接显示都为错如11输出为91,麻烦哪位高人帮忙解决一下
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
47okey
2010-11-30 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2380万
展开全部
上、下位机的波特率一致吗?
晶振是不是用11.0592MHz?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式