51单片机串口通信,得到乱码 100

程序如下:#include<reg52.h>#include<string.h>#defineucharunsignedchar#defineuintunsignedin... 程序如下:

#include<reg52.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int

#define BufferLength 32
uchar Buffer[BufferLength]={0};
bit flag=1;

void SendByte(uchar byte)
{
SBUF=byte;
while(TI==0);
TI=0;
}

void SendString(uchar *pString)
{
uint i,length;
length=strlen(pString);//#include<string.h>
for(i=0;i<length;i++)
{
SendByte(*(pString+i));
}
}
void delay(uint a)
{
uint i,j;
for(i=0;i<a;i++)
for(j=0;j<110;j++);
}
void main()
{
uint i;
TMOD=0x20; //使用八位重载定时器1
SCON=0x50; //允许接受,串行工作模式1 ,10 位异步,定
TL1=0xFD; //11.0592MHz 晶振下,波特率9600
TH1=0xFD; //11.0592MHz 晶振下,波特率9600
TR1=1; //使能定时器1
EA=1; //允许总中断
ES=1; //允许串行中断

while(1)
{
SendByte('A');
while(flag);
flag=1;
for(i=0;i<BufferLength;i++)//象征性LED显示。
{
P2=Buffer[i];
delay(500);
}
SendByte('a');
}
}

void SerialReceive() interrupt 4
{
static uchar i=0;
if(RI)
{
RI=0;
Buffer[i]=SBUF;
i++;
if(i==BufferLength)i=0;
flag=0;//成功接收到数据标志。
}
}

打开超级终端 得到的是?号 而不是A,用MATLAB查看 返回的也不是对应的ASCII码
展开
 我来答
yhchen2001
2012-07-23 · TA获得超过737个赞
知道小有建树答主
回答量:348
采纳率:90%
帮助的人:129万
展开全部
void SendByte(uchar byte)
{
SBUF=byte;
// while(TI==0); //去掉这命令,这个命令的 原意是什么???
// TI=0; // 把 清TI的命令放在中断程式那,这里清TI 会让发送中断乱的了

}

void SerialReceive() interrupt 4
{
static uchar i=0;
if(RI)
{
RI=0;
Buffer[i]=SBUF;
i++;
if(i==BufferLength)i=0;
flag=0;//成功接收到数据标志。
}
//这里加TI 的程式
if(TI)
{
TI=0;
// 发送DATA 程式,
}

}
追问
我的中断是用来接收的,发送没用中断,while(TI==0)是等待发送完成
追答
你用示波器看了你单片机发的DATA 波形是否对的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wmgi7205
2012-07-24 · TA获得超过388个赞
知道小有建树答主
回答量:771
采纳率:66%
帮助的人:414万
展开全部
1.发送函数调用过快(两次发之间调用延时)
2.上位机关键效验问题(一般选择无效验)
3.波特率不对
4.在中断中加入串口发送 会出现奇怪的问题
自查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
2012-07-23 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38386
国家科技进步奖

向TA提问 私信TA
展开全部
程序没毛病,我觉得可能是你单片机与PC机波特率设置不一致造成的,单片机为9600,超级终端缺省为2400
追问
我超级终端也设置成9600了,特别留意过的。
追答
为了验证,我建议你用串口助手试试,比超级终端功能强些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祁89
2012-07-23 · TA获得超过496个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:95万
展开全部
硬件电路有没问题啊,有没有虚焊啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式