C#中怎么获取有效的串口? 5
我使用System.IO.Ports.SerialPort.GetPortNames()会把一些虚拟的串口读出来:怎么做到只获取COM5这个真正的串口呢,其他的是电脑蓝牙...
我使用System.IO.Ports.SerialPort.GetPortNames()会把一些虚拟的串口读出来:
怎么做到只获取COM5这个真正的串口呢,其他的是电脑蓝牙的,还有的不知是怎么来的,只有com5是对的 展开
怎么做到只获取COM5这个真正的串口呢,其他的是电脑蓝牙的,还有的不知是怎么来的,只有com5是对的 展开
7个回答
展开全部
直接帆孝上代码:
public Form1()
InitializeComponent();
this.Load += Form1_Load;
void Form1_Load(object sender, EventArgs e)
string[] ArryPort = SerialPort.GetPortNames();
comboBox1.Items.Clear();
for (int i = 0; i < ArryPort.Length; i++)
comboBox1.Items.Add(ArryPort[i]);
comboBox1.SelectedIndex = 1;
问题:
1、上面的代码是启动的时候扫描出来的
2、当串口不存在时态磨稿需要被扫描出来
3、串口助手需要游脊定时检测
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原创手动敲出来的代码,已编译运行,可以实际使用。
// 获取所有可用串口的名字
string[] names = SerialPort.GetPortNames();
//遍历所有可用串口
for (byte i = 0; i < names.Length; i++)
{
serialPort1.PortName = names[i];
if (serialPort1.IsOpen == false)
{
try
{
serialPort1.Open();
}
catch
{
continue;
}
}
if (serialPort1.IsOpen == true)
{
serialPort1.DiscardInBuffer(); //清除接收缓冲区
serialPort1.DiscardOutBuffer();//清除发送缓冲区
PictureBoxComPortFlagRed();
cbxComportSelect.Text = serialPort1.PortName;
btnComOpenOrClose.Text = "关闭串颂辩口纤培";
break;
}
}
//当前没有串口可用
if (serialPort1.IsOpen == false)
{
PictureBoxComPortFlagBlack();
MessageBox.Show("没有发现可用串口野竖缺或者被占用! 001", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
// 获取所有可用串口的名字
string[] names = SerialPort.GetPortNames();
//遍历所有可用串口
for (byte i = 0; i < names.Length; i++)
{
serialPort1.PortName = names[i];
if (serialPort1.IsOpen == false)
{
try
{
serialPort1.Open();
}
catch
{
continue;
}
}
if (serialPort1.IsOpen == true)
{
serialPort1.DiscardInBuffer(); //清除接收缓冲区
serialPort1.DiscardOutBuffer();//清除发送缓冲区
PictureBoxComPortFlagRed();
cbxComportSelect.Text = serialPort1.PortName;
btnComOpenOrClose.Text = "关闭串颂辩口纤培";
break;
}
}
//当前没有串口可用
if (serialPort1.IsOpen == false)
{
PictureBoxComPortFlagBlack();
MessageBox.Show("没有发现可用串口野竖缺或者被占用! 001", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string[] ArryPort = SerialPort.GetPortNames();
cboPort.Items.Clear();
for (int i = 0; i < ArryPort.Length; i++)
{
cboPort.Items.Add(ArryPort[i]);
}
cboPort.SelectedIndex = 1;
cboPort.Items.Clear();
for (int i = 0; i < ArryPort.Length; i++)
{
cboPort.Items.Add(ArryPort[i]);
}
cboPort.SelectedIndex = 1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-11
展开全部
这个要想准确的找到串口,除非读取设备的硬件地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询