为什么发送短信时少一个字节?

VIV777 2007-05-21 01:39:23
我用PDU格式发送短信
MSComm1.Output = "AT+CMGF=0" + vbCr
MSComm1.Output = "AT+CMGS=" & str(15 + length) + vbCr
MSComm1.Output = pdu & Chr$(26)
这里的length为为31
pdu为0011000D91683175738794F90008001F241513184406000100010A33C4E3BAC3B0A1A3A1BBB6D3ADB9E2C1D9A3A1AC
发送后串口回复:
AT+CMGF=0

OK
AT+CMGS= 46

> 0011000D91683175738794F90008001F241513184406000100010A33C4E3BAC3B0A1A3A1BBB6D3ADB9E2C1D9A3A1AC
+CMGS: 104

OK

+CMTI: "SM",9
用串口助手接收的为:

0D 0A 2B 43 4D 54 3A 20 2C 35 32 0D 0A 30 38 39 31 36 38 33 31 30 38 35 30 35 34 30 35 46 30 32 34 30 44 39 31 36 38 33 31 30 31 33 35 31 31 38 37 46 36 30 30 30 38 37 30 35 30 39 31 38 31 34 31 36 31 30 30 31 45 32 34 31 35 31 33 31 38 34 34 30 36 30 30 30 31 30 30 30 31 30 41 33 33 43 34 45 33 42 41 43 33 42 30 41 31 41 33 41 31 42 42 42 36 44 33 41 44 42 39 45 32 43 31 44 39 41 33 41 31 0D 0A
少一位,最后的AC这一个没有了,少了一位
但是如果我把pdu改为
0011000D91683175738794F900080020241513184406000100010A33C4E3BAC3B0A1A3A1BBB6D3ADB9E2C1D9A3A1AC86
那么串口回复:
AT+CMGF=0

OK
AT+CMGS= 47

> 0011000D91683175738794F900080020241513184406000100010A33C4E3BAC3B0A1A3A1BBB6D3ADB9E2C1D9A3A1AC86
+CMGS: 104

OK

+CMTI: "SM",9

用串口解手的为:
0D 0A 2B 43 4D 54 3A 20 2C 35 32 0D 0A 30 38 39 31 36 38 33 31 30 38 35 30 35 34 30 35 46 30 32 34 30 44 39 31 36 38 33 31 30 31 33 35 31 31 38 37 46 36 30 30 30 38 37 30 35 30 39 31 38 31 34 31 36 31 30 30 32 30 32 34 31 35 31 33 31 38 34 34 30 36 30 30 30 31 30 30 30 31 30 41 33 33 43 34 45 33 42 41 43 33 42 30 41 31 41 33 41 31 42 42 42 36 44 33 41 44 42 39 45 32 43 31 44 39 41 33 41 31 41 43 38 36 0D 0A
这时发送的数据是多少,用串口接收的数据就是多少,一个也没有少。
这是为什么?
PS:PDU中发送的数据是GB码,内容为 3你好啊!欢迎光临!
前面的那些是引导码,没有多少关系。
...全文
322 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧