Устройство подключено через USB-COM переходник, а нужная программа видит только порты COM1–COM4 и отказывается работать с присвоенным системой COM17 — типичная ситуация, из-за которой требуется создать или переназначить COM-порт вручную. Проблема решается либо сменой номера порта в диспетчере устройств, либо созданием виртуального порта специальной утилитой.
COM-порт (последовательный порт, RS-232) до сих пор активно используется для подключения промышленного оборудования, кассовых аппаратов, сканеров штрих-кодов, GPS-модулей, диагностических адаптеров и микроконтроллеров вроде Arduino. В этой статье разберём все рабочие способы: от переназначения номера существующего порта до создания пары связанных виртуальных портов для тестирования программ.
Что такое COM-порт и когда его нужно создавать
COM-порт — это программный интерфейс последовательной передачи данных. Физически он может быть реализован как классический разъём DB9 на материнской плате, так и как USB-устройство с микросхемой преобразователя (например, FTDI, CH340, CP210x, Prolific). Для операционной системы разницы нет: оба варианта отображаются в диспетчере устройств как «Порты (COM и LPT)».
Создать или переназначить порт приходится в нескольких типовых сценариях:
- 🔌 Старое ПО жёстко привязано к номерам COM1–COM4, а адаптеру система присвоила высокий номер.
- 🔁 Нужно протестировать программу без реального оборудования — через пару связанных виртуальных портов.
- 🧩 Два устройства конфликтуют из-за одинакового номера порта.
- 🛰️ Требуется пробросить порт GPS-приёмника или модема в несколько приложений одновременно.
Прежде чем что-то создавать, проверьте, какие порты уже есть в системе. Откройте Диспетчер устройств (клавиши Win + X → «Диспетчер устройств») и разверните ветку «Порты (COM и LPT)». Если устройство определилось с жёлтым восклицательным знаком — сначала нужно установить драйвер, а не создавать порт.
Как изменить номер существующего COM-порта
Самый простой случай: порт физически существует, но имеет неподходящий номер. Windows позволяет переназначить его штатными средствами, без сторонних программ.
Порядок действий:
- 1️⃣ Откройте Диспетчер устройств и найдите ваш адаптер в разделе «Порты (COM и LPT)».
- 2️⃣ Кликните по нему правой кнопкой →
Свойства→ вкладкаПараметры порта. - 3️⃣ Нажмите кнопку
Дополнительно(Advanced). - 4️⃣ В выпадающем списке «Номер COM-порта» выберите свободный номер, например COM2.
- 5️⃣ Подтвердите изменения кнопкой «ОК» и переподключите устройство.
Обратите внимание: система может пометить номер как «используется», даже если соответствующее устройство давно отключено. Это так называемые «призрачные» порты — записи о ранее подключённых адаптерах. В большинстве случаев занятый таким образом номер всё равно можно выбрать принудительно — Windows выдаст предупреждение, но применит настройку.
⚠️ Внимание: не назначайте один и тот же номер двум реально подключённым устройствам — оба перестанут корректно работать. Проверяйте актуальный список портов перед переназначением.
Создание виртуального COM-порта через com0com
Когда физического устройства нет, а программа требует порт — на помощь приходят эмуляторы. Самое известное бесплатное решение — com0com, драйвер с открытым исходным кодом. Он создаёт пару связанных виртуальных портов: всё, что записано в один, мгновенно читается из другого. Это удобно для отладки: одна программа «отправляет» данные, другая «принимает».
Общая последовательность установки такова: скачайте драйвер с официального репозитория проекта, установите его, затем запустите входящую в комплект утилиту настройки (setup). В ней создаётся пара портов с выбранными именами — например, COM10 и COM11, либо имена вида CNCA0 и CNCB0, которые можно переименовать.
install PortName=COM10 PortName=COM11
После создания пара появится в Диспетчере устройств в отдельной ветке com0com. Проверить связь просто: откройте два терминала (например, ПО типа PuTTY или HTerm), подключите один к первому порту пары, второй — ко второму, и отправьте текст. Он должен появиться в соседнем окне.
⚠️ Внимание: на 64-разрядных версиях Windows неподписанные драйверы могут блокироваться. Если com0com не устанавливается, ищите сборку с подписанным драйвером от актуальных сопровождающих проекта — использование режима отключения проверки подписи снижает безопасность системы и должно быть крайней мерой.
☑️ Проверка перед созданием виртуального порта
Альтернативные программы для создания COM-портов
Помимо com0com существует ряд коммерческих и бесплатных утилит. Они отличаются интерфейсом, поддержкой актуальных версий Windows и дополнительными функциями вроде разделения одного порта между несколькими приложениями или проброса порта по сети.
| Программа | Тип | Основная особенность |
|---|---|---|
| com0com | Бесплатная, open source | Пары связанных портов, работа из командной строки |
| Virtual Serial Port Driver (Eltima) | Платная | Графический интерфейс, разделение и объединение портов |
| HW VSP3 | Бесплатная (для личного использования) | Проброс COM-порта по TCP/IP-сети |
| com2tcp / hub4com | Бесплатные | Связка виртуального порта с сетевым подключением |
Выбор зависит от задачи. Для локальной отладки двух программ достаточно com0com. Если оборудование находится в другом помещении и подключено к удалённому компьютеру — нужен сетевой проброс, и тут логичнее решения класса HW VSP. Для промышленной эксплуатации, где важна стабильность и техподдержка, обычно выбирают коммерческие драйверы.
Создание COM-порта для USB-устройств и Arduino
Отдельный частый случай — платы Arduino, ESP32 и USB-TTL адаптеры. Здесь порт «создаётся» автоматически при установке драйвера микросхемы-преобразователя. Если плата подключена, а порт не появляется, причина почти всегда в драйвере или кабеле.
Начните с простого: замените USB-кабель. Значительная часть кабелей в комплекте с гаджетами — только зарядные, без линий данных, и никакая настройка системы не заставит такое подключение работать. Затем проверьте Диспетчер устройств: неизвестное устройство с восклицательным знаком указывает на отсутствующий драйвер.
Драйвер нужно ставить под конкретную микросхему преобразователя — она указана в документации к плате или видна на самом чипе. Распространённые варианты: CH340/CH341 (большинство недорогих клонов Arduino), CP2102 (многие платы ESP), FTDI (оригинальные адаптеры). Драйверы загружайте с сайта производителя чипа или по ссылке из документации к вашей плате.
Как узнать, какая микросхема стоит на адаптере
Откройте Диспетчер устройств, найдите неизвестное устройство, зайдите в Свойства → вкладка «Сведения» → выберите свойство «ИД оборудования». Значения вида VID_1A86 указывают на CH340, VID_10C4 — на Silicon Labs CP210x, VID_0403 — на FTDI. По этим кодам драйвер легко найти.
Типичные ошибки и их решение
Даже после успешного создания порта программа может выдавать ошибки вида «порт занят», «доступ запрещён» или «порт не найден». Разберём причины по порядку.
«Порт занят» (Access denied / Port in use). Порт уже открыт другим приложением — последовательный порт в Windows может обслуживать только одну программу одновременно. Закройте терминалы, мониторы порта, среды разработки и повторите попытку. Если найти виновника не удаётся, помогает перезагрузка.
Порт пропадает при переподключении. Windows присваивает номер по связке «устройство + USB-разъём». Тот же адаптер в другом разъёме получит новый номер. Решение — всегда использовать один и тот же порт USB либо вручную закрепить номер через «Дополнительно», как описано выше.
Данные идут, но в виде «мусора». Это не проблема создания порта, а несовпадение параметров связи: скорости (бодрейта), битов данных, чётности, стоп-битов. Сверьте настройки в программе с документацией к устройству — типичное значение скорости для многих плат — 9600 или 115200 бод, но гарантировать это для вашего оборудования нельзя, проверяйте по инструкции.
Как удалить созданный COM-порт
Ненужные порты накапливаются и мешают: программы показывают длинные списки несуществующих устройств, а новые адаптеры получают высокие номера. Удаление зависит от способа создания.
Виртуальные порты com0com удаляются через ту же утилиту настройки драйвера — командой remove с номером пары либо через графический интерфейс, если он использовался. Порты USB-адаптеров исчезают при удалении устройства в Диспетчере устройств (правый клик → «Удалить устройство»). Скрытые «призрачные» записи сначала нужно отобразить через меню Вид → Показать скрытые устройства.
После чистки перезагрузите компьютер и подключите устройство заново — оно получит минимальный свободный номер.
Часто задаваемые вопросы
Можно ли создать COM-порт без сторонних программ?
Штатными средствами Windows можно только переназначить номер уже существующего порта через Диспетчер устройств. Полноценный виртуальный порт без физического устройства создаётся только сторонним драйвером — например, com0com.
Почему программа не видит порт с номером выше COM9?
Это ограничение старого ПО: некоторые приложения некорректно обрабатывают двузначные номера. Решение — переназначить устройству номер из диапазона COM1–COM9 через «Свойства → Параметры порта → Дополнительно» в Диспетчере устройств.
Безопасно ли использовать com0com?
Сам драйвер открыт и используется давно, но загружайте его только из официального репозитория проекта. На современных 64-битных системах предпочтительны сборки с подписанным драйвером — неподписанные версии могут быть заблокированы Windows.
Что делать, если адаптер определяется, но данные не идут?
Проверьте три вещи: не занят ли порт другой программой, совпадают ли параметры связи (скорость, чётность, стоп-биты) с настройками устройства и исправен ли кабель. Также убедитесь, что линии RX/TX при самостоятельном подключении не перепутаны — при кросс-соединении TX одного устройства идёт на RX другого.
Как узнать, какой номер получил подключённый адаптер?
Откройте Диспетчер устройств и разверните ветку «Порты (COM и LPT)» — рядом с названием адаптера в скобках указан номер, например «USB Serial Port (COM5)». Можно также отключить и снова подключить устройство, наблюдая, какая строка появляется и исчезает.