我有一个 Windows C# 应用程序。该应用程序通过串行端口连接到 RFID 读卡器。虽然我默认给它 COM 端口 3。我遇到了用户端口不可用并且他正在使用的端口与他的 Windows 操作系统不同的情况。
我的应用程序确实为用户提供了更改 COM 端口的能力,但是要找到他们的操作系统正在使用哪个 COM 端口,用户需要转到设备管理器并进行检查,新手可能不太适应。
有没有一种功能或方法可以准确地找到我的 RFID 卡在 Windows 中连接到哪个端口,以便我可以简单地显示如下:
应用程序端口设置为:COM .... 操作系统上的设备连接端口:COM ....
另外我的目标框架是3.5
编辑 1:
尝试使用 SerialPort.GetPortNames() 但它返回一个空字符串:System.String[]..
我的 RFID 设备列在设备管理器下 ===> 端口(COM 和 LPT)作为 Silicon Labs CP210x USB 到 UART 桥接器(COM3)
最佳答案
您好@user3828453 以下内容如何,然后您可以,只需使用返回的正确端口号,如果您仍然有一个空端口,则您必须要求用户进入设备管理器并通过您的界面更新端口.
private static string GetRFIDComPort()
{
string portName = "";
for ( int i = 1; i <= 20; i++ )
{
try
{
using ( SerialPort port = new SerialPort( string.Format( "COM{0}", i ) ) )
{
// Try to Open the port
port.Open();
// Ensure that you're communicating with the correct device (Some logic to test that it's your device)
// Close the port
port.Close();
}
}
catch ( Exception ex )
{
Console.WriteLine( ex.Message );
}
}
return portName;
}
关于c# - 查找串行设备 COM 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354513/