串口发送短信失败,请教pdu数据串的编码格式 ( 积分: 200 )

  • 主题发起人 主题发起人 scy_fjqz
  • 开始时间 开始时间
S

scy_fjqz

Unregistered / Unconfirmed
GUEST, unregistred user!
例如短信息中心号码为泉州 +8613800595500
对方手机号码为 +8613788800050
要发送的信息为“A”

这样写对吗
AT+CMGS=16<回车,ASCII为13>
0891683108509505F011000D91683187880050F00004000141<ctrl+z>
 
例如短信息中心号码为泉州 +8613800595500
对方手机号码为 +8613788800050
要发送的信息为“A”

这样写对吗
AT+CMGS=16<回车,ASCII为13>
0891683108509505F011000D91683187880050F00004000141<ctrl+z>
 
你试试, 16后跟ASCII 码 (13) (10) 回车换行.

你最后再发之前先发个AT过去. 再发你的命令
 
at指令可以,返回OK
 
AT
AT+CMGF=0
AT+CMGS=16
0891683108509505F011000D91683187880050F00004000141

这样试试?
 
不行,提示error
 
你的=16 不对, 你的长度不对.你自己算一下.
 
给你发段我的代码,对你应该有所帮助:
var
s1,s2: string;
SendData: string;
begin
s1 := '8613800371500';
s2 := '13137718612';
try
SendData := 'AT';
MSComm1.Output := SendData;
sleep(100);
SendData := 'AT+CMGF=1'+char(13) ;
MSComm1.Output := SendData; //&amp;iexcl;&amp;reg;&amp;Eacute;è&amp;Ouml;&amp;Atilde;·&amp;cent;&amp;Euml;&amp;Iacute;&amp;micro;&amp;Auml;&amp;Auml;&amp;pound;&amp;Ecirc;&amp;frac12;,×&amp;cent;&amp;Ograve;&amp;acirc;:&amp;Ograve;&amp;raquo;&amp;para;¨&amp;Ograve;&amp;ordf;&amp;frac14;&amp;Oacute;&amp;Eacute;&amp;Iuml; vbCr
sleep(100);
SendData := 'AT+CSCA=' +QuotedStr('+8613800371500')+char(13);
MSComm1.Output := SendData;
sleep(100);
SendData := 'AT+CMGS=&quot;' +s2+'&quot;'+char(13);
MSComm1.Output := SendData;
sleep(100);
SendData := 'hello,alisha11!' +char(26);
MSComm1.Output := SendData; //
sleep(100);
ShowMessage('发送成功!');
except
ShowMessage('发送失败!');
end;
 
s1 : 短信中心号码;
s2 : 发送目的号码。
 
长度怎么不对?说来看看
 
命令之间有廷时.
 
能发送中文吗
 
各位大侠,如何计算那个AT+CMGS=[red]16[/red]长度
 
是 Unicode 编码,高低字节交换
 
短信息中心号码只要在手机上设好后就可以了,一般不
用在短信里发送。如要发送的信息为“A”
AT+CMGF=0
AT+CMGS=17
0011000D91683187880050F00008A7020041
 
是可以发汉字的, 使用汉字转成 Unicode 码

楼主你的这个贴的问题已经解决了. 可以结贴了吗?
 
to:yjwnnit
兄弟,你的命令可以了,谢谢!
但是你能把这个编码规范给我吗?
00008A7020041
这个怎么组成,能告诉我吗
 
to yjwnnit:
兄弟,我会给你分的,有这个编码的文件吗
 
最后的0041 就是十六进z 十进Z为65 也就是&quot;A&quot; 的ASCII码.
 
楼主, 精通哪方面? 通讯软件开发?
 
后退
顶部