Я получил список доступных COM-портов, используя
http://www.naughter.com/enumser.html
EnumPorts method reports
COM1 <Lokaler Port>
COM3 <Lokaler Port>
COM4 <Lokaler Port>
COM5 <Lokaler Port>
COM6 <Lokaler Port>
COM7 <Lokaler Port>
COM8 <Lokaler Port>
COM9 <Lokaler Port>
COM10 <Lokaler Port>
COM11 <Lokaler Port>
COM12 <Lokaler Port>
COM14 <Lokaler Port>
COM13 <Lokaler Port>
COM15 <Lokaler Port>
COM16 <Lokaler Port>
COM17 <Lokaler Port>
COM18 <Lokaler Port>
COM19 <Lokaler Port>
COM255 <Lokaler Port>
COM100 <Lokaler Port>
, и написал сценарий, чтобы попытаться подключиться ко всем портам (у меня устройство FTDI, которое мне нужно читать / записывать из / в):
using System;
using System.IO.Ports;
namespace COM_detect
{
class Program
{
SerialPort _serialPort;
static void Main(string[] args)
{
Program prog = new Program();
prog.TryCOMPorts();
}
public void TryCOMPorts()
{
for (int i = 1; i < 19; ++i)
{
if (openPort("COM" + i.ToString()))
{
closePort();
}
}
}
public bool openPort(string port_name)
{
try
{
SerialPort _serialPort = new SerialPort();
_serialPort.PortName = port_name;
_serialPort.BaudRate = 115200;
_serialPort.Parity = 0;
_serialPort.DataBits = 8;
_serialPort.Handshake = Handshake.None;
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
}
catch (SystemException ex)
{
Console.WriteLine("Error opening port: " + port_name + " Ex: " + ex.ToString());
return false;
}
return true;
}
public bool closePort()
{
try
{
_serialPort.Close();
return true;
}
catch (SystemException)
{
return false;
}
}
}
}
но я не могу подключиться (даже если устройство подключено):
Error opening port: COM1 Ex: System.IO.FileNotFoundException: Could not find file 'COM1'.
File name: 'COM1'
at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
at System.IO.Ports.SerialPort.Open()
at COM_detect.Program.openPort(String port_name) in E:\COM-detect\Program.cs:line 46
В диспетчере устройств также отсутствуют COMX-порты:
введите описание изображения здесь