在c#中自动调整COM串口
本文关键字:调整 COM 串口 | 更新日期: 2023-09-27 18:08:57
我已经得到Arduino Nano控制直流电机连接到我的PC和c#控制。唯一的问题是,它目前在我的电脑上工作,如果我把它连接到另一台电脑上,它将无法工作,除非它使用相同的串行端口。这就是为什么我想要COM端口"设置自己"。有可能做到吗?如果没有,我想做另一个Form只是为了输入COM端口的数量,但我想避免,如果可能的话。提前谢谢你。这是我的代码:
public partial class Form1 : Form
{
String s = "0";
string brojPorta = "COM5";
int vrijednost = 0;
System.IO.Ports.SerialPort serialPort1;
public Form1()
{
InitializeComponent();
System.ComponentModel.IContainer components =
new System.ComponentModel.Container();
serialPort1 = new System.IO.Ports.SerialPort(components);
serialPort1.PortName = brojPorta;
serialPort1.BaudRate = 9600;
serialPort1.Open();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
}
private void Klizac1_Scroll(object sender, ScrollEventArgs e)
{
vrijednost = Klizac1.Value;
s = (vrijednost * 10.24).ToString();
serialPort1.Write(s + ''n');
label1.Text = ((vrijednost-50)*2).ToString()+"%";
}
private void btn_Zaustavi_Click(object sender, EventArgs e)
{
Klizac1.Value = 50;
label1.Text = "0";
s = (Klizac1.Value * 10.24).ToString();
serialPort1.Write(s + ''n');
}
}
首先必须枚举所有端口。看看这个问题:如何找到可用的COM端口?
那么您将不得不尝试在每个端口上使用超时连接,直到找到它。
更谨慎的方案是在下拉列表中枚举可用的端口,并让用户选择连接到的端口。
这里可能有一些陷阱,但这个例子似乎是可行的:
/*Use the WMI to search for the Arduino device on a serial port driver
and assign the serial port to the device*/
ManagementObjectSearcher SerialPortSearcher =
new ManagementObjectSearcher(
"root''CIMV2",
"SELECT * FROM Win32_SerialPort");
foreach (ManagementObject SerialPortObject in SerialPortSearcher.Get())
{
if (SerialPortObject["Description"].ToString() == "Arduino Mega 2560")
{
SerialPort _serialPort =
new SerialPort(SerialPortObject["DeviceID"].ToString());
break;
}
}