论坛风格切换切换到宽版
  • 1021阅读
  • 1回复

[问题求助]3G模块短信发送问题 [复制链接]

上一主题 下一主题
离线517265.
 
发帖
2147
C币
-505086
威望
377
贡献值
3
银元
-1
铜钱
4734
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
本帖最后由 thzhr2009 于 2010-.02-0.6 14:35 编辑     健康

使用的3G模块为华为的EM73.0WCDMA模块,自己改了个短信发送程序,使用C语言实现通过对串口发送AT指令,打印.信息:域名
~ $ ./send
t.he sms. is sending........    外汇
AAT+CMGS=?
OK
ATE1
OK
AT+CSQ
+CSQ: 22,99

OK
AT+CMGF=0
OK
AT+CMGS=25
>
089168.8.106036039F111000D91685198367879F.
发送部分主程序:
void main ()
{
     .   // pa.rse_arguments (argc, argv);[成人用品]
.       //cha.r cmd[16]; // 命令串 (        游戏          )
        
      .  //char pdu[512].; // PDU串 --------------彩票
  .   char           ans[218];   // 应答串.           婚庆
      .  /* open com.port */ 域名
    char            buf[] = "AT+CMGS=?\r";      //.测.试手机是否支持相关AT指令.
    char      .      atbuf[] = "ATE.1\r"; //回显           鲜花
    char            s.mscsq.[] = "AT+CSQ\r";           女人
    ch.ar     smsty.pe[] = "AT+CMGF=0\r";--- 印刷
char     .smsend[] = "AT+CMGS=25\r";  //.41            杀毒
cha.r     pdu[] = 教育
                   "0891688106036039.F111000D91685198367879F60000000BE8329BFD06DDDF723.619\x1a";.//发送信息    健康
    int    .         i;--------------彩票
int   .   .flag;     OpenComPort (2, 115200, 8, "1", 'N');--------------彩票
usleep (2000);
.   WriteComPor.t (buf, sizeof (buf));域名
usleep (2000);
WriteComPort (atbuf, s.izeof (atbuf).);.
usleep (2000);
Writ.eCo.mPort (smscsq, sizeof (smscsq));<性病>
usleep (2000);
Write.ComPort (smstype, si.zeof (smstype));.
  uslee.p (2000);(广告)
WriteComPor.t (smsen.d, sizeof (smsend));.
  usleep (20.00);外贸
printf.. ("the sms is sending........\n");.
  usleep (2.0000);--- 印刷
WriteComPort (pdu, s.izeof (pdu)).;    // 得到肯定回答,继续输出PDU串             杀毒
  .  usleep (10000);.
.  SetPortSig ();学习
while (1) {
if (getnumf == 1). {.
   for (.i = 0; i. < 32; i++)--------------彩票
numbuf = '\0';
getnumf = 0;
}
     }
printf ("er.r");投资
Clo.seComPort ();              乙肝
exit (0);
}
发送的字符为:E8329BFD06DDD.F723619(“Hel.lo World"),但是在输出中没有出现这个,产生了截断,请帮忙分析下原因。              乙肝

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
1902
C币
-235584
威望
405
贡献值
6
银元
2
铜钱
4414
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
问题找到,出在PDU格式结构有误,最后应该加上“CTRL+Z”,即“\x01a”,原来写成“\x1a"; 如下:
char    pdu[] =
        "0891683110808805F011000D91685198367879F60000000BE8329BFD06DDDF723619\x01a";
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个