各位大侠 本人现在做一个单片机与GSM结合发送短信到手机,刚学的,遇到一些问题,请高手帮帮忙,谢谢!!!
/***********************设置短消息中心******************************
*功 能: 串口发送数组命令到TC35, AT+CSCA="+8613800200500"回车
*形 参: uchar *canter 短消息中心 "+8613800531500"
*返 回 值:
*备 注:
*****************************************************************/
void Set_CENTER(uchar *center)
{
uchar *p,i=ATwaits; //ATwaits=10
//lcd_disp_str(RsBuf,1);
while(i--) //测试10次,在某一次成功就退出
{
RsPoint=0;
SendString("AT+CSCA="); //设置短消息中心
SendASC('"');
SendString(center); //短消息中心号码
SendASC('"');
SendASC('\r'); //发送回车指令//
//****************************等待应答"OK"
ES=1; //必须中断 // 串口中断应许
delayms_100ms();//等待接受数据完成//delayms_1000ms();delayms_1000ms();
p=mystrstr(RsBuf,"OK"); //接收到的数据存在RsBuf
if(p!=NULL) //接收到"OK"
{
lcd_disp_str("Set_CENTER is OK",1);
lcd_disp_str("CENTER contimue! ",2);
delayms_1000ms();delayms_1000ms();//delayms_1000ms();delayms_1000ms();
lcd_disp_str(" ",1);
lcd_disp_str(" ",2);
break;
}
lcd_disp_str("Set_CENTER failed",1);delayms_1000ms();
lcd_disp_str(" ",1);
}
}
/***********************发送TEXT短信息********************************
*功 能: TEXT模式发送短信息
*形 参: char *dialnum 目的号码+8613333333333 char *text发送内容
*返 回 值: 1 发送成功 0 发送失败
*备 注:发送TEXT短信息 之前应该先 1,设置短消息模式 AT+CMGF=? (0)=PDU (1)=TEXT
2,设置短消息中心 AT+CSCA="+8613800531500"回车
*****************************************************************/
char TransmitText(char *dialnum,char *text) //发送号码 发送内容,字母或数字
{
uchar i=Sendwaits,j=Sendwaits;
uchar *p;
SendString("AT+CMGS="); //信息发送指令 AT+CMGS=//
///////////////////////////////
SendASC('"');
SendString(dialnum); //手机号码的引号丢了!!!!!!!!! 已经加上
SendASC('"');
////////////////////////////////////
SendASC('\r'); //发送回车指令//
RsPoint=0; //清空接收缓冲区
//delayms_1000ms();
while(i--)
{
delayms_100ms();
p=mystrstr(RsBuf,">");//">"
if(p!=NULL) //如果接受到 > 发送text
{
///////Get">"////////////////////////////
SendString(text);
RsPoint=0; //清空接收缓冲区
SendString("\x1a\r");//'\x1a'结束符(相当CTRL+Z) '\r'回车符
//delayms_100ms();
while(j--)
{
delayms_100ms();
p=mystrstr(RsBuf,"OK");
if(NULL!=p)
{
//发送成功
lcd_disp_str("Transmit already",1);
return 1;
}
lcd_disp_str("wait Transmit! ",1);
delayms_1000ms();
lcd_disp_str(" ",1);
}
}
//else lcd_disp_str("Transmit failure",1);
}
return 0;
}
下面这几个东东怎么设置,我自己设置过,都是发送失败
SendString("AT+CSCA="); //设置短消息中心
SendASC('"');
SendString(center); //短消息中心号码
SendASC('"');
SendASC('\r'); //发送回车指令//
SendString("AT+CMGS="); //信息发送指令 AT+CMGS=//
///////////////////////////////
SendASC('"');
SendString(dialnum); //手机号码的引号丢了!!!!!!!!! 已经加上
SendASC('"');
////////////////////////////////////
SendASC('\r'); //发送回车指令// |