2016-05-27 6 views
0

私のプログラムReadByte()関数がなぜ別の値を返すのか質問したいと思います。私のUSBポートは8のバイト値を送信しますが、C#プログラムがそれを読み取ると56の値を受け取ります。どうしてですか? C#コードは以下の通りです。C#のUSBポートからのReadByte

private void serial_Click(object sender, EventArgs e) 
{ 
      SerialPort port = new SerialPort("COM4", 9600); 
      port.Open(); 

      int num1 = 0; 
      num1 = port.ReadByte(); 
      String a = Convert.ToString(num1); 
      MessageBox.Show(a); 
      port.Close(); 
} 

あなたの助けが大変ありがとうございます。

+0

私はデバイスが実際に送信しているものをデバッグするためにパケットスニファを試みるべきだと思います。マイクロソフトからメッセージアナライザを試してみてください:https://msdn.microsoft.com/en-us/library/windows/hardware/dn741264(v=vs.85).aspx 56と8の両方がバイナリ1000で終わっていますが、 USBドライブから送信されたメッセージを実際にデバッグすることなく、多くのことを伝えることはできません。 – mymo

答えて

1

バイナリデータの代わりにASCIIを送信している可能性があります。 56は "8"の場合はASCIIです。

+0

ありがとう@Tomaz Stih – Annie

関連する問題