本帖最后由 BenBenBears 于 2013-08-26 08:39:11 编辑

解决方案 »

  1.   

    那你就检查一下是否在什么地方关闭了串口,serialPort1是否打开
      

  2.   

    已经在此处加入断点,甚至很无赖地在 byte[] byteRead=new byte[serialPort1.BytesToRead; 加入serialPort1.Open()函数,调试时抛出“端口已打开的异常”,说明在调用BytesToRead之前端口都是打开的。
      

  3.   

    另外我使用的是VSDP的虚拟串口,这样会不会是造成BytesToRead(获取接收缓冲区中数据的字节数)抛出异常的原因?
      

  4.   

    另外我使用的是VSDP的虚拟串口,这样会不会是造成BytesToRead(获取接收缓冲区中数据的字节数)抛出异常的原因?
    这个不会。以前用过VSDP虚拟串口,一个虚拟串口发送数据,另一个虚拟数据模拟返回数据,没有你说的问题。
      

  5.   

    为何要用代理?为何不用 serialPort1.onreceive 事件?
      

  6.   

    另外我使用的是VSDP的虚拟串口,这样会不会是造成BytesToRead(获取接收缓冲区中数据的字节数)抛出异常的原因?
    这个不会。以前用过VSDP虚拟串口,一个虚拟串口发送数据,另一个虚拟数据模拟返回数据,没有你说的问题。
    嗯,谢谢。
      

  7.   

    另外我使用的是VSDP的虚拟串口,这样会不会是造成BytesToRead(获取接收缓冲区中数据的字节数)抛出异常的原因?
    这个不会。以前用过VSDP虚拟串口,一个虚拟串口发送数据,另一个虚拟数据模拟返回数据,没有你说的问题。
    请问你有用到BytesToRead成员吗?
      

  8.   

    另外我使用的是VSDP的虚拟串口,这样会不会是造成BytesToRead(获取接收缓冲区中数据的字节数)抛出异常的原因?
    这个不会。以前用过VSDP虚拟串口,一个虚拟串口发送数据,另一个虚拟数据模拟返回数据,没有你说的问题。
    请问你有用到BytesToRead成员吗?
    用到BytesToRead,否则不知道应该读取多少字节。