我有一个程序允许几个 Arduinos 通过串行端口进行通信。例如,如果 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# 接受。我也尝试过这样的事情,但没有成功。