查找Arduino连接的端口
本文关键字:连接 Arduino 查找 | 更新日期: 2023-09-27 18:29:54
我知道如何列出可用的串行端口,但每次连接Arduino时,我如何才能找到正确的COM端口?COM端口应该像MessageBox.Show(COMport);
一样打印
我想在Visual C#应用程序中读/写Arduino数据。
[这对我不起作用]
打开设备管理器,展开"端口(COM&LPT)"。插入Arduino USB连接,会显示一个新的COM端口,名称为Arduino UNO(COMxx)。这是在我的机器上,因为我有一个Arduino UNO。
您可以使用WMI(Windows Management Instrumentation)找到此字符串。我在一个类中使用下面的方法,并将COM端口作为公共列表
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;
using System.Windows;
public void getCOMportsValues()
{
try
{
if (COMports.Count > 0) COMports.Clear(); // COMports is a List<string>
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root''CIMV2", "SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject queryObj in searcher.Get())
{
string s = queryObj["Name"] as string;
if (s.Contains("(COM"))
COMports.Add(s);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying WMI data: " + e.Message);
}
}
您可以对Arduino进行编程,使其通过串行发送特定模式,并且您的C#侦听所有COM端口,查找特定模式。
详细说明,com端口命名为:COM1、COM2、COM3等。
因此,编码一个打开每个COMn的循环,如果打开成功,则发送一个串行流,看看是否得到了正确的响应。
最后,在C中,您可以sprintf(port_name, "COM%d", port_nr);
生成用于打开的端口名。