複数のArduinoがシリアルポート経由で通信できるようにするプログラムがあります。たとえば、Arduino1 が Arduino3 と通信したい場合、ユーザーは Arduino1 から文字列を送信し、この文字列が Arduino3 に表示されます。これは でうまく機能していSerialMonitor
ます。
問題は、C# アプリケーションで同じことをしようとしたときです (何も表示されません)。私はこれを試しました:
//(...)
comPort1.Open();
//(...)
private void comPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string inData = comPort1.ReadLine();
msgBoxLog.AppendText(inData); // msgBoxLog = textBox with data received/sent
}
//(...)
private void sendButton_Click(object sender, EventArgs e)
{
string my_str = "my string";
msgBoxLog.AppendText(my_str + "\r\n");
comPort1.WriteLine(my_str + "\r\n");
}
いくつかのメモ:
- RtsEnableとDtrEnableの両方がアクティブです
- ボーレート (Arduino / C#) = 1200
ボーレート値は問題ですか? この値を使用する必要がありますが、C# で受け入れられるかどうかはわかりません。私もこのようなことを試みましたが、成功しませんでした。