串口调试助手非十六进制接收字符有误

用51开发板做串口通信,我肯定我写的程序没有错误,串口助手(串口助手V3.2)以十六进制方式发送0x0a,单片机收到后向串口发关字符串OKabc,串口调试助手以十六进制接... 用51开发板做串口通信,我肯定我写的程序没有错误,串口助手(串口助手V3.2)以十六进制方式发送0x0a,单片机收到后向串口发关字符串OKabc,串口调试助手以十六进制接收显示时没错,但不用十六进制接收时,则显示O0K0asbOcK或者OKKEaabwcb等(串口助手V3.2)高手们知道为什么吗?
我用的是11.0592MHz的晶振,波特率我选了9600,这些都是对的呀!

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

code unsigned char send_txt[]={"OKabc"};
void delay(unsigned int i);
main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
//PCON=0x00;
TR1=1;
EA=1;
ES=1;

while(1);
}

//////////////////////////////////
void getch(void) interrupt 4
{
unsigned char a;
RI=0;
EA=0;
a=SBUF;
P1 = SBUF;
if(a==0x0a)
{
int i;
//EA=0;
for(i=0;i<sizeof(send_txt);i++)
{
SBUF=send_txt[i];
while(!TI);
TI=0;
delay(1000);
}
}

EA=1;
}

void delay(unsigned int i)
{
unsigned int j;
unsigned char k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
展开
 我来答
cjj796
2013-11-06 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3448万
展开全部

你好!!

    应该是串口助手(串口助手V3.2)产生的结束符号;

    16进制显示字符是不对的,ASC码,才能显示出字符

给你一个我的串口调试软件,你试试吧

追问
谢谢你啊,十六进制接收时能收到正的十六进制ASCII码呀,只是不用十六进制接收时就不是发送的OKabc了,而是还多了其它的字符
追答
那就是你串口助手的问题了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式