0
GUIでシリアルポートリスナーを作成したいと思います。 受信したデータをtextBox
に印刷しようとしています。ボタンのプログラムをクリックするとリスニングが始まりますが、すべて動作しますが、textBox
には印刷されません。C# - シリアルポートリスニング - テキストボックスにデータを印刷する方法
void serialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
textBox1.AppendText(indata + "\r\n");
}
とリスニングを開始するボタンコード:
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort.Open();
いくつかの助けが必要です:)
あなたはDataReceivedEventからUIを更新することはできません、それは、ワーカースレッド上で起動されます。なぜあなたはInvalidOperationExceptionを取得していない明らかではない、あなたはそれを無効にしていないことを確認してください。 –
多分mySerialPort.ReadTimeoutを変更する必要があります.btwはデフォルトで500msです。多分500では不十分です –