我正在尝试打开每个端口并<mccon>
串行发送,我的微控制器将对此做出响应<connected>\n
,之后 C# 代码必须退出 for each 循环。
我的serialPort.PortName = str;
线路有问题。两次迭代后,它不再继续。
我也尝试过手动执行此操作。我做了一个下拉菜单并一一选择了端口。在第二个端口之后,不允许更改串行端口。但如果我在两次尝试中选择,它工作正常。
我知道 C++ 中的 OOP。但我是 C# 新手。我不确定为什么循环失败。
public Form1()
{
InitializeComponent();
send_button.Enabled = false;
//Availabe COM ports
SerialPort tmp;
foreach(string str in SerialPort.GetPortNames())
{
tmp = new SerialPort(str);
if (tmp.IsOpen == false)
{
serialPort.PortName = str;
try
{
//Open serial port
serialPort.Open();
serialPort.BaudRate = 9600;
serialPort.WriteTimeout = 10;
serialPort.ReadTimeout = 10;
serialPort.Write("<mccon>");
readtxt.Text = serialPort.ReadTo("\n");
if (readtxt.Text == "<connected>")
{
send_button.Enabled = true;
port_combobox.Enabled = false;
break;
}
else
{
serialPort.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}