📄 tr800.txt
字号:
void Send_SMS(char SMS_Long,char * User_Phone,char * SMS_Udl,char * SMS_Data)
{
char aa[30]={0};
char bb[30]={0};
char cc[60]={0};
char dd[60]={0};
char i1=0,i2=0,i3=0,i4=0;
char Out1=0,Out2=0,Out3=0,Out4=0;
char time=0x30;
Led_Display(0x2);
Uart_Select(1);
Uart_Printf("at+cmgf=0\n"); //使能PDU发送,1时为text
while(1)
{
aa[i1]=Uart_Getch();
if(aa[i1]=='\n')
Out1++;
if(Out1==1)
{ //第1行出现OK或者其他标示
if((aa[i1-1]=='O')&&(aa[i1]=='K'))
break;
else if ((aa[i1-2]=='R')&&(aa[i1-1]=='O')&&(aa[i1]=='R'))
{
Out1=0;
time++;
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_Select(1);
}
}
if(Out1==2){ //2个换行最大值,判定模块是否激活
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Printf("at+cmgf=0\n");
Out1=0;
time++;}
if(time==0x33) //超出3次即视为系统错误
{
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_SendByte('F');
Uart_Printf("\n");
Uart_Select(1);
break;
}
i1++;
} //第1个while(1)
Uart_Printf("at+cnmi=2,2,0,0,0\n"); //发送命令
Clear_Rin_Sign();
////*************用CMGS命令发送短信**************////////
Led_Display(0x4);
Uart_Printf("At+cmgs=24\n"); //发送SMS短信命令
while(1)
{
bb[i2]=Uart_Getch();
if(bb[i2]=='\n')
Out2++;
if(Out2==1)
{
if(bb[i2]=='>')
{
Uart_Printf("0011000D9168"); //前端初始设置
Uart_Printf(User_Phone);
Uart_Printf("000000");
Uart_Printf(SMS_Udl);
Uart_Printf(SMS_Data);
Uart_SendByte(0x1A); //撤销符Ctrl+z,发送短信命令结束
//////*******看返回信息是发送成功还是失败******//////
while(1)
{
cc[i3]=Uart_Getch();
Led_Display(0x8);
if(cc[i3]=='\n')
Out3++;
if(Out3==1)
{
if ((cc[i3-3]=='C')&&(cc[i3-2]=='M')&&(cc[i3-1]=='G')&&(cc[i3]=='S'))
{
Uart_Select(0);
Uart_Printf("\n\nSMS Sussess\n");
Uart_Select(1);
break;
}
if ((cc[i3-2]=='R')&&(cc[i3-1]=='O')&&(cc[i3]=='R'))
{
Uart_Select(0);
Uart_Printf("\n\nFirst Time Lost,Try Again\n");
Uart_Select(1);
//////*******若第一次失败,尝试第二次,可以针对上电重启时的状态******//////
Uart_Printf("\n");
Clear_Rin_Sign();
Delay(2000);
Uart_Printf("At+cmgs=24\n");
while(1)
{
dd[i4]=Uart_Getch();
if(dd[i4]=='\n')
Out4++;
if(Out4==1)
{
if(dd[i4]=='>')
{
Uart_Printf("0011000D9168"); //前端初始设置
Uart_Printf(User_Phone);
Uart_Printf("000000");
Uart_Printf(SMS_Udl);
Uart_Printf(SMS_Data);
Uart_SendByte(0x1A); //撤销符Ctrl+z,发送短信命令结束
break;
}
if ((dd[i4-2]=='R')&&(dd[i4-1]=='O')&&(dd[i4]=='R'))
{
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_Select(1);
break; //跳出第4个while(1)
}
}
i4++;
}
//*********第4个while(1)的结束*********////
break; //跳出第3个while(1)
}
}
i3++;
}
//*********第3个while(1)的结束*********////
break;//跳出第2个while(1)
}
else if ((bb[i2-2]=='R')&&(bb[i2-1]=='O')&&(bb[i2]=='R'))
{
Out2=0;
time++;
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Printf("At+cmgs=24\n");
}
}
if(Out2==2) //2个换行最大值
{
Out2=0;
time++;
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Printf("At+cmgs=\n");
}
if(time==0x36) //超出一定次数即视为系统错误
{
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_SendByte('S');
Uart_Printf("\n");
Uart_Select(1);
break; //跳出第2个while(1)
}
i2++;
}
//*********第二个while(1)的结束**********///////
//*********向电脑发送状态数组**********///////
Uart_Select(0);
Uart_SendString(aa);
Uart_Printf("\n");
Uart_SendString(bb);
Uart_SendString(cc);
Uart_Printf("\n");
Uart_SendString(dd);
Uart_Printf("\n");
Uart_Select(1);
}
//////*******看返回信息是发送成功还是失败******//////
while(1)
{
cc[i3]=Uart_Getch();
Led_Display(0x8);
if(cc[i3]=='\n')
Out3++;
if(Out3==1)
{
if ((cc[i3-3]=='C')&&(cc[i3-2]=='M')&&(cc[i3-1]=='G')&&(cc[i3]=='S'))
{
Uart_Select(0);
Uart_Printf("\n\nSMS Sussess\n");
Uart_Select(1);
break;
}
if ((cc[i3-2]=='R')&&(cc[i3-1]=='O')&&(cc[i3]=='R'))
{
Uart_Select(0);
Uart_Printf("\n\nFirst Time Lost,Try Again\n");
Uart_Select(1);
//////*******若第一次失败,尝试第二次,可以针对上电重启时的状态******//////
Uart_Printf("\n");
Clear_Rin_Sign();
Delay(2000);
Uart_Printf("At+cmgs=24\n");
while(1)
{
dd[i4]=Uart_Getch();
if(dd[i4]=='\n')
Out4++;
if(Out4==1)
{
if(dd[i4]=='>')
{
Uart_Printf("0011000D9168"); //前端初始设置
Uart_Printf(User_Phone);
Uart_Printf("000000");
Uart_Printf(SMS_Udl);
Uart_Printf(SMS_Data);
Uart_SendByte(0x1A); //撤销符Ctrl+z,发送短信命令结束
break;
}
if ((dd[i4-2]=='R')&&(dd[i4-1]=='O')&&(dd[i4]=='R'))
{
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_Select(1);
break; //跳出第4个while(1)
}
}
i4++;
}
//*********第4个while(1)的结束*********////
break; //跳出第3个while(1)
}
}
i3++;
}
//*********第3个while(1)的结束*********////
break;//跳出第2个while(1)
}
else if ((bb[i2-2]=='R')&&(bb[i2-1]=='O')&&(bb[i2]=='R'))
{
Out2=0;
time++;
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Printf("At+cmgs=24\n");
}
}
if(Out2==2) //2个换行最大值
{
Out2=0;
time++;
Uart_Printf("\n");
Clear_Rin_Sign();
Uart_Printf("At+cmgs=\n");
}
if(time==0x36) //超出一定次数即视为系统错误
{
Uart_Select(0);
Uart_Printf("Hardware Error,Pleasr Reset\n");
Uart_SendByte('S');
Uart_Printf("\n");
Uart_Select(1);
break; //跳出第2个while(1)
}
i2++;
}
//*********第二个while(1)的结束**********///////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -