while(i--) {
Delay(200);
P=\ if(P!=NULL) {return 1;} } return 0; }
//读取短信息
char code Ask_No[]=\char code ERROR{]=\char code Ask_Tc35[]=\
unsigned char ReadMsg(unsigned char index) {
unsigned char *p,i; unsigned char Buf[40];
SendToTc35(AT_Tc35,3); //\
SendToTc35(Read_Tc35,sizeof(Read_Tc35)-1); SendASC(index); SendASC(OVER); ES=1; //必须中断 Delay(600); /*------- ES=\:
SendToTc35(RsBuf,99); ES=\*/|
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); //\ SendToTc35(Send_Tc35,sizeof(Send_Tc35)-1);//\SendASC(YinHao); SendToTc35(Mp1.Hand,sizeof(Mp1.Hand)); //\SendASC(YinHao); SendASC(OVER); ES=1; while(i--) { Delay(100); //Get\ p=\ if(p!=NULL) { ClrRsBuf(RsBuf,sizeof(RsBuf)); Delay(150); //Get\ break; } } } 二、发送短信息和接收短信息(TEXT模式) (以下内容来自网络,作者声明可以自由转载,但必须注明出处) 适合人群:首次接触G网模块人员 凡是利用GSM模块二次开发的,不管是用来做公话,还是GPRS通信,其中短消息基本都要使用的。本文大致介绍一下短消息相关的AT命令使用方法。 详细的AT指令说明,可以参考 07.05,或者西门子MC35I的AT手册,西门子手册感觉还是很不错的。 由于本文表达的错误给您带来的物资损失和精神损伤,本人概不负责。 1、 短消息的格式 我所见到的模块短消息基本都提供2种格式,TEXT和PDU。文本模式相对来说比较简单,特别适合传输那些字符什么的,对于老外来说,基本就发26个字母,简直太方便了。PDU模式需要进行编码,目前的汉字传输好多都采用PDU模式。由于本人对PDU和怎么发汉字基本一窍不通,这段就暂时忽略了。 一般模块默认的都是PDU模式,你可以使用如下命令切换到TEXT模式: AT+CMGF=1 如果想再切换到PDU模式,使用: AT+CMGF=0 即可,以下短消息发送&读取都采用TEXT模式,因为PDU我不是很懂。 2、 怎样给我发送一条短消息? 现在你手里有了G网模块,但首先你要确保如下操作已经完成: 1) 模块上电并且AT命令同你的PC串口通信顺畅。 2) SIM卡没有欠费,并且已经登陆GSM网络(可以使用AT+CREG?查询,如果返回1或者5表示正常)。 3) AT+CMGF=1设置完毕。 有了以上的过程,那么你就可以给我发信息了,你要使用的AT命令是:AT+CMGS。 我的手机号是:13766832435(真实号码)。 1) 从串口输入:AT+CMGS=\然后按回车键。 2) 这个时候你可以看到有个大于号 ?>?弹出,提示你可以输入消息的内容了。 假如你想发送“hello world”,直接在?>?后面输入即可,输入完了后按?CTRL^Z”,稍微等一下,你的信息也就发出去了,如果编程好像是0x1A(记不清了,你可以查下ASCII表)。 全部过程如下: AT+CMGS=\ > hello world +CMGS: 199 OK 你需要一直等到OK返回,才能确定是成功发出,中间的那个东西可以先不管。如果你输入 “hello world”后,但又不想发了,按ESC可以取消发送,就不再介绍。 附: ASCII表 3、 怎样打开传送回报? 手机上我们都可以找到一个菜单,可以选择传送回报的功能,也就是说别人收到你的信息后,短消息中心会给你一个确认信息,假如是发给心上人,这个功能尤其重要。 对于模块我们没有菜单可选,但我们有 AT+CSMP 这样一条AT命令,在TEXT模式下,对于手机上的那个选项可以通过这条命令实现,这个命令的具体含义我搞得不是很清楚,也懒得去研究,曾经有个人告诉我按照下面设置后,传送回报就可以回来: AT+CSMP=33 但即使你这样设置后,别人收到后,传送回报你可能还是看不到,你还需要设置另外一条AT命令:“AT+CNMI=2,1,,1”,下面就会介绍到这个命令的用法。 对于PDU模式, 控制传送回报有很大差别。 4、 AT+CNMI的用法。 到目前为止,你至少还有如下的疑惑:
相关推荐: