欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10897|回復: 8
打印 上一主題 下一主題
收起左側

單片機控制GSM模塊

[復制鏈接]
跳轉到指定樓層
樓主
ID:4558 發表于 2008-8-25 01:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用單片機控制GSM模塊收發短信,現在需要用手機向模塊發送特定的命令,GSM模塊接收到信息后,單片機識別該信息,并講識別的結果通過短信回復,現在我的程序可以識別GSM模塊收到的信息,但是通過向手機回復識別的結果就出問題了,發送信息總是返回ERROR,有人知道程序的流程嗎?麻煩大家幫我看看我的程序有什么問題?
發短信的程序如下:
Sent_Mes(unsigned char *p)
{
 Cls_Rebuf();
  SELInt_off();
 Ser_TXDstring(TC_HEAD,3);//發送AT+
 Ser_TXDstring(TC_CMGS,5);//CMGS=
 Ser_TxDchar(0x22);//發送雙引號
  Ser_TXDstring(TelNumber,11);
   Ser_TxDchar(0x22);//發送雙引號
   gsm_Over();//回車換行
   SELInt_on();
 ss=0xffffff;
 while(Rev_Buf[Rev_count-1]!=0x3e)
    {
 ss--;     //超時返回
 if(ss==0)
   {return;}
    }
 SELInt_off();
 Ser_TXDstring(p,5);//短信內容
 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();
    }
   }
  }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:2724 發表于 2008-8-25 09:03 | 只看該作者
那手機收到信息了嗎?
回復

使用道具 舉報

板凳
ID:4558 發表于 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


以上就是通過串口看到的信息
手機是收不倒信息的
回復

使用道具 舉報

地板
ID:2724 發表于 2008-8-25 12:57 | 只看該作者
接一個串口看單片機發出來的命令是否正確..這是最好的辦法..我不知道你發AT命令的時候是不是一串一塊發出去的...比如讀信息AT+CMGR=1, TC35收到不是..AT命令才會..返回ERROR
回復

使用道具 舉報

5#
ID:4558 發表于 2008-8-25 14:21 | 只看該作者

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

回復

使用道具 舉報

6#
ID:199562 發表于 2017-5-16 15:18 | 只看該作者
發送完短信內容后,還要發送0x1A才能啟動一次短信發送。
回復

使用道具 舉報

7#
ID:199562 發表于 2017-5-16 15:22 | 只看該作者
不用發送回車,只發送0x1a即可
回復

使用道具 舉報

8#
ID:199562 發表于 2017-5-16 15:32 | 只看該作者
刪除Ser_TxDchar(0x1a);后面的  gsm_Over();,就是說不用發送回車換行
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表