0

私のタイトルは私の問題を説明しています...それを解決するために何もできません。

USBケーブルで接続されたシリアルCOMデバイスです(適切なドライバがインストールされています)。また、COM ポートがシステムによって検出され、次のレジストリ キーに存在することがわかります: HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

お知らせ下さい。

更新: 説明不足で申し訳ありません。おそらく、私はそれが起こる理由を考えました.値がHKLM\HARDWARE\DEVICEMAP\SERIALCOMMに追加/削除されたイベントでアプリがサブスクライブしました。そして、アプリはそれに気づいた直後にポートを開こうとしました。しかし、その時点ではポートの準備ができていない可能性があるため、「ポートが存在しません」というメッセージが表示されました。単純に Thread.Sleep(2000) で問題が解決しました。

しかし、このスリープ ソリューションは適切なソリューションとは思えません。たぶん、レジストリ以外に接続されているデバイスを別の場所で確認する必要がありますか? そのため、実際に存在し、接続する準備ができたときに接続します。

ご回答ありがとうございます。スタックオーバーフローが大好き!

4

2 に答える 2

1
  1. 「オープン」のコード スニペットを提供してください。

  2. 正確なエラー テキストとメッセージを指定してください (たとえば、errno 57、errno 55 など)。

  3. C#/VS と OS のバージョンを指定してください

  4. Q: System.IO.Ports.SerialPort.GetPortNames は何と言っていますか?

  5. Q: ポートがまだ開かれていないこと、および (たとえば、別のアプリケーションによって) 使用されていないことを確実に確信していますか?

  6. Q: 再起動してすぐにプログラムを再実行するとどうなりますか?

于 2011-07-08T20:54:05.137 に答える
-4

あなたは私たちに先に進むために多くを与えませんでした. あなたが言ったことから、「COMx」の代わりにCOMポート名に「COM1」を使用してみてください。

于 2011-07-08T19:57:11.100 に答える