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);是一个指针。
还有我数据发送过去之后如何知道已经发送了呢?

解决方案 »

  1.   

    我的想法是:comm1.StartComm;//打开串口
    comm1.writecommdata('AT+CMGF=0'+ #13+#10);
    comm1.writecommdata('AT+CMGS='&Str(15 + length)+#13+#10);
    comm1.writecommdata('0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E'+#26);这样是不是一条短消息就发送成功呢?不解?
    如果中间有一行程序出错了怎么办?
      

  2.   

    好像要先設置COM口的參數,然後用AT指令設置為等待狀態,最後發送想發的信息。^Z結束
      

  3.   

    提示我参数不够!writecommdata(串,发送长度);对吗?
      

  4.   

    comm1.StartComm;//打开串口
    comm1.writecommdata('AT+CMGF=0'+ #13+#10,length('AT+CMGF=0'+ #13+#10));
    其余的都是少了一个长度参数,你自己加上
    你发送一条后延时一点,在发下一条,要么你判断收到的是什么再继续发,不过我一般延时后马上发的,你也是做手机短信的吧
      

  5.   

    再帮你顶顶!mscomm:微软的东西,ActivX控件,使用简单,在VB中带的,性能一般,由于是ActivX控件,打包时需要注册好多信息,不推荐使用。
    spcomm:比较好的vcl,算是比较专业的,解剖了一下,功能比较完善。
    TurboPower:公认的专业通讯控件。可以到其站点下载,开放源码了。
    我在制作串口通讯软件时三种都用过,最终全部使用TurboPower!所以也推荐大家使用它。
    写了个例子,基本的串口通讯都可以实现,可提供参考。
    下载地址:http://www.kaer.cn/default.aspx(网站安全性较差,经常当机,如果急用,mail我)
    多多指正:[email protected]