2

シリアル ポートからデータをバイト配列として読み取り、テキスト ボックスに表示するコードを作成しました。コードは正常にコンパイルされますが、正しく動作しません:

private void button2_Click(object sender, EventArgs e)
{
    if (serialPort1.IsOpen == false)
        serialPort1.Open();
    serialPort1.WriteLine(textBox1.Text);
    int bytes = serialPort1.BytesToRead;
    byte[] byte_buffer = new byte[bytes];
    serialPort1.Read(byte_buffer, 0, bytes);
    //textBox2.Text = " ";
    for (int t = 0; t < bytes; t++)
    {
        textBox2.Text += (byte_buffer[t]).ToString();
    }
}
4

3 に答える 3

1

あなたはこれについて間違った方法で進んでいます。

ボタンをクリックすると、serialPort1 が開きます。もちろん。次に、バッファを読み取ろうとします。しかし、同じ方法でポートを開いただけです。

このチュートリアルをご覧ください: http://www.dreamincode.net/forums/topic/35775-serial-port-communication-in-c%23/

C# でのシリアル通信全体について説明します。ボタンを押すイベント ハンドラーでのみポートを開いて読み取ることは望ましくありません。

于 2013-08-22T10:32:38.957 に答える