AT
AT+CMGF=0
AT+CMGS=17
011000D91683119900720F1000800024F60以上的命令在超级终端中正确
在程序中如下定义char cAt1[]={"AT\r\n"};
char cAt4[]={"AT+CMGF=0\r\n"};
char cAt5[]={"AT+CMGS=17\n"};
char cAt6[]={"011000D91683119900720F1000800024F60\x1A"};当发送时出错,高手指点一下

解决方案 »

  1.   

    发送char cAt5[]={"AT+CMGS=17\n"};后判断是否收到0x3E 0x20,收到这两个字节后才能发送
    char cAt6[]={"011000D91683119900720F1000800024F60\x1A"};!在超级终端中手工输入的速度比较慢,所以能成功!不知道是不是这个原因?发送串的最后一个字节是0x1A,你可以在内存中看看!
      

  2.   

    我在调试状态下跟踪看到已经收到0x3E 0x20了,你能帮我试一下上面的命令吗(在程序里): sunjun240(小帅猪) ,多谢多谢
      

  3.   

    我在串口调试助手上手工试没有成功!
    你不是想发送中文的“你”吗?
    0891683108100005F031000D91683119900720F1000805024F60
    第四条指令发上面的串!当然后面要有控制符0x1A!
    然后char cAt5[]={"AT+CMGS=17\n"};的17你知道是什么意思吗?
    如果你发送中文的“你”,此时的不应该是17,是2!!!因为4F60在发送的时候占两个byte
    这个数字是你发送数据块的长度(除开短信头)!
    其实就是17也没有什么问题!不会有错误,反正此时的数字比实际的发送串只能大不能小!GSM模块认的是控制符0x1A!上面的串我前段日子用过,成功了!
    祝你好运!