微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机控制GSM模块TC35的方法

单片机控制GSM模块TC35的方法

时间:11-23 来源:互联网 点击:

//模式设置
void UART_Init(void)
{
SCON=0x50; //01010000b=>1模式scon,#11011000b;
ES=l;
}

//发送-个ASCII
void SendASC(unsigned char ASC)
{
bit es;
es=ES;
ES=0;//关闭中断
TI=0;
SBUF=ASC;
while(!TI);
TI=0;
ES=es;
)

//发送命令到TC35
void SendToTc35(unsigned char* p,unsigned char Long)
{
while(Long--)
{
SendASC(*p++);
}
}

// 通讯中断接收程序
void Rs485_Do(void) interrupt 4 using 1
{
if(RI==l)
{
RI=0;
RsBuq[RsPoint++]=SBUF;
if fRsPoint>=sizeof(RsBuf))
{
RsPoint=0;//FlagRs485=0;
} //数据处理
}
}

// 发送AT连机命令
char code AT_Code[]="OK";
void Send_AT(void)
{
unsigned char *p;
while(1)
{
ClrRsBuf(RsBuf,sizeof(RsBuf));
SendToTc35(AT_Tc35,2); //"AT"
SendASC(OVER);
/|

p=strstr(RsBuf,ERROR);
if(P!=NULL)
{
Send_AT();return 0;
p=strstr(RsBuf,Ask_No);//无信息
if(p!=NULL)return 0;
p=strstr(RsBuf,Ask_Tc35);//20个字节后是MSG
if(p==NULL) return 0;
p=p+21;
for(i=0;i{
Buf[i]=*p++;
}

if(EraseMsg(index)==0) return 0;
p=strcpy(RsBuf,Buf); //放回RsBuf
return 1;
)

//发送短信息
char code SK[]=">";
void SendMsgStart(void)
{
unsigned char *p,i=10;
SendToTc35(AT_Tc35,3); //"AT+"
SendToTc35(Send_Tc35,sizeof(Send_Tc35)-1);//"IPR=19200"
SendASC(YinHao);
SendToTc35(Mp1.Hand,sizeof(Mp1.Hand)); //"AT+"
SendASC(YinHao);
SendASC(OVER);
ES=1;
while(i--)
{
Delay(100); //Get">"
p=strstr(RsBuf,SK);//">"
if(p!=NULL)
{
ClrRsBuf(RsBuf,sizeof(RsBuf));
Delay(150); //Get">"
break;
}
}
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top