在接收前先检查一下缓冲区有多少字节啊
msgbox MSComm1.InBufferCount

解决方案 »

  1.   

    你的程序是不是用在与单片机通信上??
    1。要注意波特率的选择,因为单片机在2方式下是固定波特率的,在3方式下也要先设定;
    2。要注意字符数据与二进制数据的接受与发送是不一样的;
    3。注意,有时需要在程序中设置延时以便与被控端保持同步。
    ~~~~呵呵,我也正在做这个东西,不过我遇到的问题是rs232的地址传送的问题,具体来讲就是如何发送与接收数据来控制单片机的tb8(需要9位数据)
      

  2.   

    谢谢了!
    其实我做的与一块实验箱的通讯程序,我想是不是应该使用Oncomm方法,我正在努力尝试,但愿能行。
      

  3.   

    Handshaking 属性
          设置并返回硬件握手协议。语法object.Handshaking [ = value ]Handshaking 属性的语法包括下列部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的对象。 
    value 整型表达式,说明握手约定,如“设置值”中所描述。 
    设置值value 设置值是:设置值 值 描述 
    comNone 0 (缺省)没有握手。 
    comXOnXOff 1 (XON/XOFF) 握手。 
    comRTS 2 RTS/CTS (Request To Send/Clear To Send) 握手。 
    comRTSXOnXOff 3 Request To Send 和 XON/XOFF 握手皆可。 
    说明Handshaking 是指内部通讯协议,通过该协议,数据从硬件端口传输到接收缓冲区。当一个数据字符到达串行端口,通讯设备就把它移到接收缓冲区以使程序可以读它。如果没有接受缓冲区,程序需要直接从硬件读取每一个字符,这很可能会造成数据丢失,因为字符到达的速度可以非常快。握手协议保证在缓冲区过载时数据不会丢失,缓冲区过载为数据到达端口太快而使通讯设备来不及将它移到接收缓冲区。数据类型Integer
      

  4.   

    当然要用Oncomm了,如果你觉得有必要,我可以发几份源码给你,是有关rs232串行控制的,有电源控制器的、读码器的、温度箱的……很多!要的话和我联系:[email protected]