单片机/MCU论坛
直播中

比利

8年用户 13经验值
私信 关注
[问答]

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

代码:
#include
#include
#define uchar unsigned char
#define uint unsigned int



***it P10=P1^0;
***it P11=P1^1;
***it P12=P1^2;
***it P13=P1^3;
***it P14=P1^4;
***it P15=P1^5;
***it P16=P1^6;
***it P17=P1^7;
#define FOSC_110592M
//#define FOSC 12000000L



uchar rec_data[50];
uchar rec_num;
static uchar phonenum[50]="454646564";
//uchar sendsms[25];
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         {
                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;
//¢P16=0;
        //DelaySec(1);
        //P16=1;
       
}

void Uart1Sends(uchar *str)
{
        while(*str!='')
        {
                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         {
                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(num);
        //????????GSM???,???? AT ??,??????????????
        Uart1Sends("ATIrn"); //??
        while(!hand("OK"))
        {
                clear_rec_data();
                i++;
                Uart1Sends("ATIrn");//
                DelaySec(1);//??
                if(i>=5)
                {
                        P10=1;
                        break;
                        //return;
                }
                else
                        ;
        }
       
        clear_rec_data();//?????GSM???????,?????????
        DelaySec(1);//??
        Uart1Sends("AT+CSQrn");//????
        DelaySec(1);//??
        i=0;
        while(!hand("OK")) //??????GSM??????OK
        {
                clear_rec_data();
                i++;
                Uart1Sends("AT+CSQrn");//
                DelaySec(1);//??
                if(i>=5)
                {
                        P11=1;// ÃðµÆûÓеõ½Êý¾Ý
                        break;
                        //return;
                }
                else
                        ;
        }
//        P11=0;
        clear_rec_data();
        DelaySec(1);//??
        Uart1Sends("AT+CPIN?rn");//?????????
        DelaySec(1);//??
        i=0;
        while(!hand("READY")) //??SIM??????SIM?READY
        {
                clear_rec_data();
                i++;
                Uart1Sends("AT+CPIN?rn");//???????
                DelaySec(1);//??
                if(i>=5)
                {
                        P12=1;
                        break;
                        //return;
                }
                else
                        ;               
        }
        //P12=0;
        Uart1Sends("AT+COPS?rn");//???????
        DelaySec(1);//??
        i=0;
        while(!hand("CHINA")) //???????????CHINA
        {
                clear_rec_data();
                i++;
                Uart1Sends("AT+COPS?rn");//???????
                DelaySec(1);//??
                if(i>=5)
                {
                        P13=1;
                       
                        break;
                        //return;
                }
                else
                        ;               
        }
//        P13=0;
        clear_rec_data();
        //DelaySec(1);//??
//???????????
        //Uart1Sends("AT+CMMI=2,1rn"); //???
        //DelaySec(1);//??
        //Uart1Sends("AT+CMGF=1rn");  //??1
        //DelaySec(1);//??
        /*Uart1Sends("AT+CMGS="1252015002940813"rn");  //????????????
        DelaySec(1);//??
        Uart1Sends("ye");  
        DelaySec(1);//??
        Uart1BYTE(0X1A);
        DelaySec(1);*/
        //DelaySec(1);//??
        //DelaySec(1);//??
//        DelaySec(1);//??
       
//????????
        Uart1Sends("AT+CMGD=1rn");//??SIM?????
        DelaySec(1);//??
        DelaySec(1);
        P14=0;
       
       
               
               
                                //phonenum[11]='';
                                clear_rec_data();
                                Uart1Sends("AT+CSCS="GSM"rn"); //???
                                DelaySec(1);//??
                                Uart1Sends("AT+CMGF=1rn");  //??1
                                DelaySec(1);//??
                               
                                Uart1Sends("AT+CMGS="1252015002940813"rn");  //????????????
                                DelaySec(1);//??
                                Uart1Sends(phonenum);  
                                DelaySec(1);//??
                                Uart1BYTE(0X1A);
                               
                       
                       
                       
                       
               
        }//deng dai zhu ce duanxin
        图片中 454646564 是STC89C51在与GSM模块连接之前,串口接收的数据。而接上GSM模块之后变成了00000000  这是为啥啊??

GSM模块是SIM900A v3.8.2
  • QQ截图20160819120303.png
已退回3积分

回帖(4)

比利

2016-8-19 14:29:01
没人遇到过这个问题吗?  自顶一下
举报

leilei12345

2016-8-19 14:47:44
提示: 作者被禁止或删除 内容自动屏蔽
举报

比利

2016-8-19 15:35:09
再顶一下。。。。。。。。
举报

比利

2016-8-20 09:38:06
再顶!!!!!!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分