【发布时间】:2013-04-16 08:07:30
【问题描述】:
我正在尝试编写一个使用 arduino mega 和基于 FTDI 的 USB 转 RS485 适配器的程序。
我想让程序对用户友好,因此我不希望用户手动检查 com 端口号,但我想自动检测它。这是代码的sn-p
ManagementScope scope = new ManagementScope();
SelectQuery query = new SelectQuery("SELECT * FROM Win32_SerialPort");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
try
{
foreach (ManagementObject item in searcher.Get())
{
String description = item["Description"].ToString();
String deviceID = item["DeviceID"].ToString();
Console.WriteLine("Porta " + description + " deviceID " + deviceID);
if (description.Contains("USB Serial Port"))
return deviceID;
}
}
catch (ManagementException)
{
}
我无法理解的一点是为什么我可以找到 Arduino 的 USB Serial 端口(匹配 description.Contains("Arduino") )但找不到 USB RS485 端口的 com 端口。
您知道为什么会发生这种情况吗?查询SELECT * FROM Win32_SerialPort错了吗?
【问题讨论】:
标签: c# windows serial-port usb