2664|0

1

帖子

0

TA的资源

一粒金砂(初级)

此程序为何发送显示正常,接收是乱码呢?求助各位! [复制链接]

#include
#include
unsigned char r[]="",n=0;
void delay(unsigned int z)//延时
{
unsigned int x,y;
for(x=0;x   for(y=0;y<110;y++);
}
void s_init()//初始化串口
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XFA;
TL1=0XFA;
// ES=0;
EA=1;
TR1=1;
}
void main()
{
unsigned char p1[]="at+clip=0\x0d\x0a", //向tc35发送复位命令
p2[]="at+csq\x0d\x0a",//网络质量返回
p3[]="at^snfs=2\x0d\x0a",
i;

s_init();
while(!(r[n-2]=='K')) //判断串口返回的字符串倒数第三位是不是'K'
{
  n=0;
  memset(r,0,sizeof(r));//字符数组清零
  for(i=0;i<11;i++)//循环发送AT+CFUN=1,1
  {
   ES=0;
   SBUF=p1;
   while(!TI);//判断发送否
   TI=0;//置位TI
  }
  ES=1;//开串口中断开始接收
  delay(100);
}
n=0;
memset(r,0,sizeof(r));
while(!(r[n-2]=='K'))
{
  n=0;
  memset(r,0,sizeof(r));
  for(i=0;i<8;i++)
  {
   ES=0;
   SBUF=p2;
   
   while(!TI);
   TI=0;
  }
  ES=1;
  delay(100);
}
n=0;
memset(r,0,sizeof(r));
while(!(r[n-2]=='K'))
{
  n=0;
  memset(r,0,sizeof(r));
  for(i=0;i<11;i++)
  {
   ES=0;
   SBUF=p3;
   
   while(!TI);
   TI=0;
  }
  ES=1;
  delay(100);
}
memset(r,0,sizeof(r));
n=0;
}
void chuankou() interrupt 4
{
  unsigned char tmp;
  tmp=SBUF;
  r[n]=tmp;
  RI=0;
  n++;

}

串口调试助手显示发送的字符是正常的,可就是接收下来乱码!
此帖出自单片机论坛

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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/5 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表