Не удается подключиться к COM-портам - PullRequest
0 голосов
/ 26 мая 2020

Я получил список доступных 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-порты:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...