我用的是wavecom的gsm,我想关闭猫,发送AT+CPOF
,通过pc机没问题<br /><br />而改用单片机就不行了,那里错了呢,猫已经登陆网络了<br /><br />#include<reg52.h><br />#include<stdio.h><br />#include<string.h><br /><br /><br /><br /><br />#define uchar unsigned char<br /><br />uchar idata RsPoint=0;<br /><br />uchar RsBuf[256];<br /><br />sbit buz = P1^0; <br /><br /><br />char code AT_wmoi3[]="AT"; //连机<br /><br />char code AT_Code[]="OK"; //确认<br /><br />char code AT_M[]="AT+CPOF
/"; //关机<br /><br /><br />void InitSerial(void)<br /><br />{<br /> SCON = 0x52; // setup serial port control <br /> TMOD = 0x20; // hardware (9600 BAUD @11.0592MHZ) <br /> TH1 = 0xFD; // TH1<br /> TR1 = 1; // Timer 1 on<br />}<br /><br />////////////////////////////////////////////////////<br /><br />void DelayMs(unsigned int count) // mSec Delay 11.0592 Mhz <br /><br />{ <br /> unsigned int i; // Keil v7.5a <br /> while(count) {<br /> i = 115; <br /> while(i>0) i--;<br /> count--;<br /> }<br />}<br /><br /><br />////////////////////////////////////////////////////<br /><br />void SendASC(unsigned char ASC)<br /><br />{<br /> bit es;<br /> es=ES;<br /> ES=0; //关闭中断<br /> TI=0;<br /> SBUF=ASC;<br /> while(!TI);<br /> TI=0;<br /> ES=es;<br />}<br /><br />//////////////////////////////////////////////////////<br /><br />void Send_To_wmoi3(unsigned char* p,unsigned char Long)<br /><br />{<br /> while(Long--)<br />{<br /> SendASC(*p++);<br /> }<br />}<br /><br />////////////////////////////////////////////////////////<br /><br /> <br />void wmoi3_To_cpu(void) interrupt 4 using 1<br /><br />{ <br /> unsigned char *p;<br /><br /> *RsBuf=0x0000;<br /><br /> if(RI==1)<br /> {<br /> RI=0;<br /><br /> RsBuf[RsPoint++]=SBUF;<br /><br /> p=strstr(RsBuf,AT_Code);<br /><br /> if(p!=NULL) {buz=~buz ;}<br /><br /><br /> if (RsPoint>=sizeof(RsBuf))<br /><br /> {<br /> RsPoint=0;<br /> } <br /> }<br /> }<br /><br /><br /> /*uchar idata count_232=0; // 串行接收计数器<br />uchar xdata *read_232; // 串行接收数据缓冲区指针<br />uchar xdata *pr; */<br /><br /><br />////////////////////////////////////////////////////<br /> /*<br />void Send_AT(void)<br /><br />{ unsigned char *p;<br /><br />while(1)<br /><br /> {<br /><br /> ClrRsBuf(RsBuf,sizeof(RsBuf));<br /><br /> SendTowmoi3(AT_wmoi3,2); //"AT"<br /><br /> SendASC(OVER);<br /><br /> //************等待应答“ok"<br /> ES=1; //必须中断<br /><br /> Delay(50);<br /><br /> P=strstr(RsBuf,AT_Code);<br /><br /> if(p!=NULL) break;<br /><br /> }<br />} */<br /><br /><br /><br /> main()<br /><br /> { InitSerial() ;<br /> DelayMs(900000);//5s<br /> ES=1; <br /> Send_To_wmoi3(AT_M,8); <br /> <br /> while(1);<br /> <br /> <br /> <br /> }<br /><br /><br /><br /><br /> |
|