重複の可能性:
C#シリアルポートとハイパーターミナル
問題
シリアル接続に問題があります。デバイスにデータを送信できますが、データを読み取ることができません。Hypertermを使用すると、すべてが正常に機能します。データが出入りするのがわかります。
ただし、私のコードを使用すると、シリアルポートオブジェクトはデータを受信しませんが、送信するデータはデバイスによって受信されます。
何か案は?
プロジェクト情報:
- WPF
- .NET 3.5(クライアントプロファイルバージョンではありません)
- Windows7での開発
- Visual Studio 2010
- DA-15シリアルからUSB
ハイパーターム設定:
- COM20
- ビット/秒:115200
- データビット:8
- パリティ:なし
- ストップビット:1
- フロー制御:なし
C#コード:
SerialPort serial = new SerialPort();
serial.PortName = "COM20";
serial.BaudRate = 115200;
serial.DataBits = 8;
serial.Parity = Parity.None;
serial.StopBits = StopBits.One;
serial.Handshake = Handshake.None;
serial.Open();
serial.Write("Hello World\r\n"); // Echoed on device screen
while (0 == serial.BytesToRead) // Never receive a response
System.Threading.Thread.Sleep(100);
char[] first = new char[serial.BytesToRead];
serial.Read(first, 0, first.Length);
編集:
上記で説明しましたが、念のため、USB-シリアルポートケーブルを使用しています。Hypertermで動作するため、これは問題ではないと思いますが、念のためです。