📄 gprs.c
字号:
#include "CM240128.H"
#include "C8051F020.h"
#include <string.h>
#include "数据存储.h"
//-----------------------------------------------------------------------------------------------------------------
void UART0Write(unsigned char *pbuf,unsigned char count)
{
bit c;
if(count==0)return;
c=EA;
EA=0;
TI0=0;
while(count--)
{
SBUF0 = *pbuf++;
while(!TI0);
TI0=0;
}
EA=c;
}
//-----------------------------------------------------------------------------------------------------------------
void UART1Write(unsigned char *pbuf,unsigned char count)
{
bit c;
if(count==0)return;
c=EA;
EA=0;
//SCON1=SCON1&0xfd;
UART1ClrTI();
while(count--)
{
SBUF1 = *pbuf++;
while(!UART1GetTI());
UART1ClrTI();
}
EA=c;
}
//
//-----------------------------------------------------------------------------------------------------------------
unsigned char UART0Read(unsigned char *pbuf)
{
unsigned int i;
unsigned char cnt;
cnt=0;
RI0=0;
for(i=0;i<60000;i++)
{
if(RI0!=0)
{
RI0=0;
i=0;
cnt++;
*pbuf++ = SBUF0;
}
}
return cnt;
}
//-----------------------------------------------------------------------------------------------------------------
//字符串寻找
//判断字符串srcstr中是否包含substr
//返回 0:不包含
// 1:包含
unsigned char StrFind(unsigned char *srcstr,unsigned char *substr)
{
unsigned char *psrc,*psub,srcln,subln,i,j;
psrc = srcstr;psub = substr;
srcln = strlen(psrc);
subln = strlen(psub);
for(i=0;i<srcln;i++)
{
if(psrc[i]==psub[0])
{
for(j=0;j<subln;j++)
if(psrc[i+j]!=psub[j])break;
if(j==subln)return 1;
}
}
return 0;
}
//-----------------------------------------------------------------------------------------------------------------
//unsigned char DDDDDDDD;//ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
void GPRSInit(void)
{
xdata unsigned char buf[100];
unsigned char cnt,j,sendcnt;
unsigned int i;
// if(DDDDDDDD!=0xaa)return;//ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
UART0SETUP(57600,8);//设置串口
UART0DISABLE();//关串口中断
SetCurrLoc(0,16);
DisplayFill(' ',180);//清除显示区
for(i=0;i<60000;i++);
for(j=0;j<10;j++)
{
UART0Write("AT\r\n",4);
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
if(StrFind(buf,"OK"))
break;
for(i=0;i<60000;i++);
}
if(j>=10){SetCurrLoc(0,16);DisplayStr("GPRS模块连接:ERR",30);}
else{SetCurrLoc(0,16);DisplayStr("GPRS模块连接:OK",30);}
// for(i=0;i<60000;i++);
for(sendcnt=0;sendcnt<3;sendcnt++)
{
SetCurrLoc(0,32);
UART0Write("AT+CGDCONT=1,\"IP\",\"CMNET\"\r\n",27);
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
if(StrFind(buf,"OK"))
{
DisplayStr("GPRS配置服务商:OK",30);
break;
}
}
if(sendcnt==3)DisplayStr("GPRS配置服务商:ERR",30);
// for(i=0;i<60000;i++);
for(sendcnt=0;sendcnt<3;sendcnt++)
{
SetCurrLoc(0,48);
UART0Write("AT%CGPCO=1,\"PAP,,\" ,1\r\n",23);
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
if(StrFind(buf,"OK"))
{
DisplayStr("GPRS配置用户:OK",30);
break;
}
}if(sendcnt==3)DisplayStr("GPRS配置用户:ERR",30);
// for(i=0;i<60000;i++);
for(sendcnt=0;sendcnt<3;sendcnt++)
{
SetCurrLoc(0,64);
//UART0Write("AT$DESTINFO=\"218.60.36.112\",1,8002\r\n",36);
UART0Write("AT$DESTINFO=\"",13);
UART0Write(ServerIp,strlen(ServerIp));
UART0Write("\",1,8002\r\n",10);
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
if(StrFind(buf,"OK"))
{
DisplayStr("GPRS配置IP地址:OK",30);
break;
}
}if(sendcnt==3)DisplayStr("GPRS配置IP地址:ERR",30);
// for(i=0;i<60000;i++);
SetCurrLoc(0,80);
UART0Write("ATD*97#;\r\n",10);
for(i=0;i<20;i++)
{
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
{
// DisplayStr(buf,30);
if(StrFind(buf,"OK"))
break;
cnt=0;
}
}
UART0ENABLE();//开串口中断
}
//-----------------------------------------------------------------------------------------------------------------
void GPRSEnd(void)
{
/*
xdata unsigned char buf[100];
unsigned char j,cnt,n;
unsigned int i;
*/
UART0SETUP(57600,8);//设置串口
UART0DISABLE();//关串口中断
ClrDisplay();
/*
SetCurrLoc(0,16);DisplayStr("GPRS模块断开程序",30);
for(j=0;j<10;j++)
{
UART0Write("+++",3);
for(n=0;n<10;n++)for(i=0;i<60000;i++);
UART0Write("AT\r\n",4);
cnt = UART0Read(buf);buf[cnt]='\0';
if(cnt!=0)
if(StrFind(buf,"OK"))
break;
for(i=0;i<60000;i++);
}
if(j>=10){SetCurrLoc(0,16);DisplayStr("GPRS模块断开:ERR",30);}
else{SetCurrLoc(0,16);DisplayStr("GPRS模块断开:OK",30);}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -