1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 單片機控制GSM模塊 [打印本頁]

作者: huangjm4944    時間: 2008-8-25 01:05
標題: 單片機控制GSM模塊
我用單片機控制GSM模塊收發(fā)短信,現(xiàn)在需要用手機向模塊發(fā)送特定的命令,GSM模塊接收到信息后,單片機識別該信息,并講識別的結果通過短信回復,現(xiàn)在我的程序可以識別GSM模塊收到的信息,但是通過向手機回復識別的結果就出問題了,發(fā)送信息總是返回ERROR,有人知道程序的流程嗎?麻煩大家?guī)臀铱纯次业某绦蛴惺裁磫栴}?
發(fā)短信的程序如下:
Sent_Mes(unsigned char *p)
{
 Cls_Rebuf();
  SELInt_off();
 Ser_TXDstring(TC_HEAD,3);//發(fā)送AT+
 Ser_TXDstring(TC_CMGS,5);//CMGS=
 Ser_TxDchar(0x22);//發(fā)送雙引號
  Ser_TXDstring(TelNumber,11);
   Ser_TxDchar(0x22);//發(fā)送雙引號
   gsm_Over();//回車換行
   SELInt_on();
 ss=0xffffff;
 while(Rev_Buf[Rev_count-1]!=0x3e)
    {
 ss--;     //超時返回
 if(ss==0)
   {return;}
    }
 SELInt_off();
 Ser_TXDstring(p,5);//短信內(nèi)容
 Delay5Ms();
 Delay5Ms();
 Ser_TxDchar(0x1a);//ctrl+z
 gsm_Over();//回車換行
 SELInt_on();
 ss=0xffffff;
 while(Rev_Buf[Rev_count]!=0x4B)
    {
 ss--;     //超時返回
 if(ss==0)
   {return;}
   }


if(NewSMS_flag==1)//收到新信息
  { 
   NewSMS_flag=0;
   if(Rev_Buf[count+7]==0x53&&Rev_Buf[count+8]==0x4D)//判斷該新短信存儲的位置是否在SIM卡
   {
    MES_COUNT=Rev_Buf[count+11];//返回該新短信息的序號
   }
   Read_Mes(MES_COUNT);//讀取控制指令
   if(MES_COUNT!=0x31)
   MES_COUNT=0x31;
   Del_Mes(MES_COUNT);//刪除短信
   Cls_Rebuf();
   CMD_SHIBIE();//指令識別
   MES_COUNT=0;
   if(TELNUM_OK)//如果電話號碼正確
   { 
    TELNUM_OK=0;
    if(CMD==1)
    {
     CMD=0;
     systemon=1;
     Sent_Mes(CMD_1);
     Cls_Rebuf();
    }
    if(CMD==2)
    { 
     CMD=0;
     systemon=0;
     Sent_Mes(CMD_2);
     Cls_Rebuf();
    }
   }
  }

作者: ccc    時間: 2008-8-25 09:03
那手機收到信息了嗎?
作者: huangjm4944    時間: 2008-8-25 11:21

+CMTI: "SM",1
AT+CMGR=1

+CMGR: "REC UNREAD","+8613560405844",,"08/08/25,11:20:49+32"
SYSON

OK
AT+CMGD=1

OK
AT+CMGS="13560405844"

> SYSON
ERROR


以上就是通過串口看到的信息
手機是收不倒信息的
作者: ccc    時間: 2008-8-25 12:57
接一個串口看單片機發(fā)出來的命令是否正確..這是最好的辦法..我不知道你發(fā)AT命令的時候是不是一串一塊發(fā)出去的...比如讀信息AT+CMGR=1, TC35收到不是..AT命令才會..返回ERROR
作者: huangjm4944    時間: 2008-8-25 14:21

我的發(fā)送程序已經(jīng)貼出來了,中間都有判斷的,只有接收到0x3e之后才發(fā)送信息的


作者: CZY9795    時間: 2017-5-16 15:18
發(fā)送完短信內(nèi)容后,還要發(fā)送0x1A才能啟動一次短信發(fā)送。

作者: CZY9795    時間: 2017-5-16 15:22
不用發(fā)送回車,只發(fā)送0x1a即可
作者: CZY9795    時間: 2017-5-16 15:32
刪除Ser_TxDchar(0x1a);后面的  gsm_Over();,就是說不用發(fā)送回車換行




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1