C#串口扫描

时间:2021-03-31 06:24:13

1.传入serialport 和待显示串口的Commbox

private void Search_AddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
{

   //将可用端口号添加到ComboBox
  string[] MyString = new string[20]; //最多容纳20个,太多会影响调试效率
  string Buffer; //缓存
  string []opened_port = new string[20]; //记录可以打开的,其实只是为了记住第一个可以打开的,供后面初始化
  int count_opendPort = 0;
  MyBox.Items.Clear(); //清空ComboBox内容
  for (int i = 1; i < 20; i++) //循环
  {
    try //核心原理是依靠try和catch完成遍历
    {
      Buffer = "COM" + i.ToString();
      MyPort.PortName = Buffer;
      MyPort.Open(); //如果失败,后面的代码不会执行
      opened_port[count_opendPort++] = Buffer;
      MyBox.Items.Add(Buffer); //打开成功,添加至下俩列表
      MyPort.Close(); //关闭
    }
    catch
    {

    }
  }
  MyBox.Text = opened_port[0]; //初始化第一个打开的,若都没打开则默认为空
}