If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
Length=Len(“如果收到短信,请回复.”)*2
MSComm1.Output = "AT+CMGF=0" + vbCr ‘以Pdu模式发送短信
MSComm1.Output = "AT+CMGS=" & Str(15 + length ) + vbCr
MSComm1.Output= “0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E” & Chr$(26)上面两条好像是向串口发送两条AT指令如果用spcomm如何写?
我初步理解是使用writecommdata。
但是writecommdata(@ch);是一个指针。
还有我数据发送过去之后如何知道已经发送了呢?
Length=Len(“如果收到短信,请回复.”)*2
MSComm1.Output = "AT+CMGF=0" + vbCr ‘以Pdu模式发送短信
MSComm1.Output = "AT+CMGS=" & Str(15 + length ) + vbCr
MSComm1.Output= “0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E” & Chr$(26)上面两条好像是向串口发送两条AT指令如果用spcomm如何写?
我初步理解是使用writecommdata。
但是writecommdata(@ch);是一个指针。
还有我数据发送过去之后如何知道已经发送了呢?
comm1.writecommdata('AT+CMGF=0'+ #13+#10);
comm1.writecommdata('AT+CMGS='&Str(15 + length)+#13+#10);
comm1.writecommdata('0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E'+#26);这样是不是一条短消息就发送成功呢?不解?
如果中间有一行程序出错了怎么办?
comm1.writecommdata('AT+CMGF=0'+ #13+#10,length('AT+CMGF=0'+ #13+#10));
其余的都是少了一个长度参数,你自己加上
你发送一条后延时一点,在发下一条,要么你判断收到的是什么再继续发,不过我一般延时后马上发的,你也是做手机短信的吧
spcomm:比较好的vcl,算是比较专业的,解剖了一下,功能比较完善。
TurboPower:公认的专业通讯控件。可以到其站点下载,开放源码了。
我在制作串口通讯软件时三种都用过,最终全部使用TurboPower!所以也推荐大家使用它。
写了个例子,基本的串口通讯都可以实现,可提供参考。
下载地址:http://www.kaer.cn/default.aspx(网站安全性较差,经常当机,如果急用,mail我)
多多指正:[email protected]