質問: True Then 'ポートオープン済み SerialPort1.Close() 'ポートクローズ End If End Sub End Class ``` 送信側からSend()して見ると、 送信には成功しているようなのですが、 受信側の ``` SerialPort1.Open() 'ポートオープン ``` の処理で例外が発生します。 通信はUSB接続で行っています。 COMポート番号はあっていることを確認しています。 TeratermでCOMポート受信もできることも確認済みです。 ``` System.IO.IOException: システムに接続されたデバイスが機能していません。 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str) 場所 System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull) 場所 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) 場所 System.IO.Ports.SerialPort.Open() 場所 Travel_Car_Register_Recv.Form1.Button1_Click(Object sender, EventArgs e) 場所 c:\Form1.vb:行 23 システムに接続されたデバイスが機能していません。 ``` 解決方法が見つからず、苦慮しています。 どなたかわかりませんか?
回答: >TeratermでCOMポート受信もできることも確認済みです。 起動したままで、落としていないなんて、落ちは無いですよね? ’ サイト:NonSoft さん、他にも有用なコンテンツがあります。 COMポート(シリアル)での送受信 http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleRs232c.html ’ USB / USB-COM は、デバイスドライバ依存の機能ですので、 ドライバの出来や、x32/x64、OSによって挙動が変わります。 ⇒ステータス変化のイベント、デバイスの取外時の例外処理など。 ’ COMポートは、デバイスマネジャーから参照、設定が可能ですが、 慣れない間は、ポート番号の変更、バッファの変更はしない方が良いです。 ⇒変更する場合は、必ずメモを取ってから。 差し込むUSBポートを変更した場合は、ポート番号が変化します。 ドライバーの出来にもよりますが、稀に同じポートに挿したのにポート番号が 同じにならない場合もあります。