字符数组在进入GSM模块时发生变更,why?

mengmengmengwang 2016-08-19 03:45:20
代码:
#include <REG51.H>
#include <string.H>
#define uchar unsigned char
#define uint unsigned int
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
#define FOSC_110592M
uchar rec_data[50];
uchar rec_num;
static uchar phonenum[50]="454646564";
uchar flag;
void SerialInti()
{
TMOD=0x20;
#ifdef FOSC_12M
TH1=0xf3;
TL1=0xf3;
#else
TH1=0xfd;
TL1=0xfd;
#endif

TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void DelaySec(int sec)
{
uint i , j= 0;
for(i=0; i<sec; i++)
{
for(j=0; j<65535; j++)
{
}
}
}
void Serial_interrupt() interrupt 4
{

uchar temp;
temp=SBUF;
rec_data[rec_num++]=temp;
if(rec_num>=50)
rec_num=0;
else
;
RI=0;
}

void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);
TI=0;
str++;
}
}
void Uart1BYTE(uchar temp)
{
SBUF=temp;
while(!TI);
TI=0;
}
uchar hand(uchar *ptr)
{
if(strstr(rec_data,ptr)!=NULL)
return 1;
else
return 0;
}
void clear_rec_data()
{
uchar i;
for(i=0;i<strlen(rec_data);i++)
{
rec_data[i]='0';
}
rec_num=0;
}

void main()
{
uchar i = 0;
SerialInti();

P10=0;
P11=0;
P12=0;
P13=0;
P14=1;
P15=1;
P16=1;
flag =1;
Uart1Sends("ATI\r\n"); //??
while(!hand("OK"))
{
clear_rec_data();
i++;
Uart1Sends("ATI\r\n");//
DelaySec(1);//??
if(i>=5)
{
P10=1;
break;
//return;
}
else
;
}

clear_rec_data();//?????GSM???????,?????????
DelaySec(1);//??
Uart1Sends("AT+CSQ\r\n");//????
DelaySec(1);//??
i=0;
while(!hand("OK")) //??????GSM??????OK
{
clear_rec_data();
i++;
Uart1Sends("AT+CSQ\r\n");//
DelaySec(1);//??
if(i>=5)
{
P11=1;// ÃðµÆûÓеõ½Êý¾Ý
break;
//return;
}
else
;
}
clear_rec_data();
DelaySec(1);//??
Uart1Sends("AT+CPIN?\r\n");//?????????
DelaySec(1);//??
i=0;
while(!hand("READY")) //??SIM??????SIM?READY
{
clear_rec_data();
i++;
Uart1Sends("AT+CPIN?\r\n");//???????
DelaySec(1);//??
if(i>=5)
{
P12=1;
break;
//return;
}
else
;
}
Uart1Sends("AT+COPS?\r\n");
DelaySec(1);
i=0;
while(!hand("CHINA"))
{
clear_rec_data();
i++;
Uart1Sends("AT+COPS?\r\n");//???????
DelaySec(1);//??
if(i>=5)
{
P13=1;

break;
//return;
}
else
;
}

clear_rec_data();
Uart1Sends("AT+CMGD=1\r\n");//??SIM?????
DelaySec(1);
P14=0;

clear_rec_data();
Uart1Sends("AT+CSCS=\"GSM\"\r\n"); //???
DelaySec(1);//??
Uart1Sends("AT+CMGF=1\r\n"); //??1
DelaySec(1);//??

Uart1Sends("AT+CMGS=\"1252015002940813\"\r\n");
DelaySec(1);//??
Uart1Sends(phonenum);
DelaySec(1);//??
Uart1BYTE(0X1A);

}
图片中 454646564 是STC89C51在与GSM模块连接之前,串口接收的数据。而接上GSM模块之后变成了00000000 这是为啥啊??

GSM模块是SIM900A v3.8.2
...全文
466 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengmengmengwang 2016-08-19
  • 打赏
  • 举报
回复

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧