社区导航

 

搜索
查看: 1838|回复: 5

我彻底的无奈了!

[复制链接]

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-6-8 14:21 | 显示全部楼层 |阅读模式
大家好:最近做一个GPRS收发短信的实验,接收短信后解析出号码和内容,然后回复给该手机需要的内容,
但是老是出现问题,可以解析出号码和内容,请高手帮忙看一下啊,MC39i的模块。
while( 1 )
   {  //发送数据
                serBwrite( "AT+CMGL=\"REC UNREAD\"\r", 21 );

                while( serBwrFree() != BOUTBUFSIZE )
                {
                        msDelay( 100 );
                }

                memset( temp, 0, 1024 );

                bytes = serBread( temp, BINBUFSIZE, 150 );

                if( NULL != strstr( temp, "+CMGL:" ) )
                {
                        //printf( "Receive:%s\n", temp );
        m=strstr(temp,"+86");
        n=strstr(temp,"\",,\"") ;
        for(l=0;l              {
               num[l]=*(m+3+l) ;
             }

         sprintf(V,"%f",VOLT) ;
         sprintf(TempBuffer2, "Voltage A0 is:%s\r", V );
         puts(num);
         putchar('\n');
         SMSTranslate(temp);
         puts(temp);
         putchar('\n');
         sprintf(TempBuffer1, "AT+CMGS=%s\r", num );
         puts(TempBuffer1);
         putchar('\n');
        while(serBrdUsed()!=0)serBgetc(); //清空缓存
        serBputs(TempBuffer1);//发送发送短信申请
        if( serExpect( ">", 30000 ) == 1 )
        {
                printf( "AT+CMGS OK!\n" );
        }
        else
        {
                exit( 0 );
        }
      msDelay(1000);
       serBputs(TempBuffer2);
      if( serExpect( "+", 12000 ) == 1 )
        {
                printf( "OK!\n" );
        }
        else
        {
                exit( 0 );
        }

  }
}
}

不知道哪出了问题,仿真的结果老是这个:(现在老是怀疑是TempBuffer1和TempBuffer2长度的问题。)15965427552                                                                     
a                                                                              
AT+CMGS=15965423890                                                            
AT+CMGS=15965423890                                                            
>AT+CMGS OK!                                                                    
Voltage A0 is:0.000000AT+OK!    对方收不到短信!
如果对方能够收到短信的话,应该是这样的形式:
15965427552                                                                     
a                                                                              
AT+CMGS=15965423890                                                            
AT+CMGS=15965423890                                                            
>AT+CMGS OK!                                                                    
Voltage A0 is:0.000000

+OK!

3

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2009-6-8 14:38 | 显示全部楼层
上面的错了AT+CMGS=15965423890 这一句都改为AT+CMGS=15965427552;
自己顶一下,别沉了!

回复

使用道具 举报

2

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2009-6-8 15:21 | 显示全部楼层
没做过,关注

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-6-8 16:19 | 显示全部楼层
发送个serBputc(0x1a)就可以吧。

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-6-8 15:21 | 显示全部楼层
大概扫了一眼你的代码,短信发送完毕以后是发送CTRL+Z字符结束的哦,你发送\r\n干嘛?

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-6-9 11:31 | 显示全部楼层
内容的后面添上0x1a   不要回车

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-10 07:48 , Processed in 0.230375 second(s), 26 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表