急急急!!!!单片机串口通讯问题,返回发送数据,但是返回数据和发送的数据不一样。

#include"reg51.h"unsignedcharm,n;voidmain(void){EA=1;//开总开关ES=1;//开串口中断TMOD=0x22;//定义... #include"reg51.h"
unsigned char m,n;
void main(void)
{
EA=1;//开总开关
ES=1;//开串口中断
TMOD=0x22;//定义TM0D为00100010,为8位方式
SCON=0x50;//01010000
TH1=0xFD;//定义波特率为9600
TL1=0xFD;
TR1=1;//开定时器中断
while(1)//无限循环
{
if(m==1)//如果收到串口数据执行
{
m=0;//
ES=0;//暂时关闭串口中断
//n>>=1;
SBUF=n;//将缓冲中的数据写为n
while(!TI);//正在写入数据中
TI=0;//写入完毕后置TI为0
ES=1;//重新打开串口中断
}
}
}
void chuan(void) interrupt 4
{
while(!RI);
RI=0;
m=1;
n=SBUF;
}

我用STC89C54RD+(40针)返回的数据和发送的数据是一致的,然后把这个程序又写到STC12C2052AD(20针)中,返回的数据就不是发送的数据了,这个是怎么回事?请大家给我详细讲解一下,谢谢。
展开
 我来答
凌寒冰吻
2012-09-02
知道答主
回答量:39
采纳率:0%
帮助的人:25.2万
展开全部

嘿嘿,我试过了,把晶振换成11.0592的就行了

追问
我用STC89C54RD+也没问题,换成12c2052就出问题啦。这两个的不是通用的吗》
zhxiufan
2012-09-02 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部
一般都是波特率不一致造成的,你需要查看一下你的硬件环境比如晶振等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
960310983
2012-09-02 · TA获得超过352个赞
知道小有建树答主
回答量:867
采纳率:0%
帮助的人:209万
展开全部
如果下位机没有问题建议你换个串口调试软件,我之前用下载软件自带的串口调试功能也是常出问题,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd_myj
2012-09-02 · TA获得超过526个赞
知道小有建树答主
回答量:526
采纳率:0%
帮助的人:290万
展开全部
波特率设置的问题吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式