日期:2014-05-18  浏览次数:20825 次

c# SerialPort问题,请教,急!!急!!急 !!!
System.IO.Ports.SerialPort.Open()后出现以下错误


Open Port Exception: A device attached to the system is not functioning.

  at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
  at System.IO.Ports.InternalResources.WinIOError()
  at System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull)
  at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
  at System.IO.Ports.SerialPort.Open()

此为USB转Com,我用系统消息检测DeviceChange消息,当设备插入的时候判断是否为我要的设备,如是我需要的设备,则打开该串口,以上错误是我在打开串口时出现的异常,请教高人给个思路!!!

注:并不是每一次连接都会出现此问题,但一但出现此问题,则需停用该设备,再启用才行.

------解决方案--------------------
应该是硬件或者驱动程序的问题,和System.IO.Ports.SerialPort类无关,
------解决方案--------------------
你先在你本机的串口com1 调试一下 
没问题的话就是你硬件问题
usb转串口可靠么?
我用过一个串口转多串口的。。。有些细节还是有问题。。。
------解决方案--------------------
USB转Com 确实问题多多。在使用这种方式对串口进行操作,不如直接找有串口的机器用。问题不在于你设计的系统问题,在于USB转Com、系统转换之间出现问题。

------解决方案--------------------
3楼说的对。
另外硬件最好不要老是插拔。