Изменение номера COM-порта в Windows
Столкнулся тут недавно с тем, что у меня куда-то пропадают номера COM-портов (интерйфес RS-232, через который работает моя управлялка освещением на Ke-USB24A). Недавно был COM16, переключил разъёмчик USB — порт вдруг стал уже COM22. Неее, не дело! Полез разбираться и заодно делюсь с вами, читатели, как удалить записи об отключённых и ненужных устройствах и сменить номер COM-порта в Windows. Написано будет про Windows XP, думаю, под другие винды надо будет действовать по аналогии.
Приношу снова извинения за скриншоты: я сначала окучил все устройства, а потом решил накатать в блог: так что на некоторых скриншотах будет всё уже культурно без «мусора», об удалении которого я пишу в статье.
Первым делом я полез в свойства устройства, чтобы сменить номер порта в свойствах устройства и обломался. Мой любимый COM16 (под него настроениа програ по умолчанию) был кем-то занят (по словам системы). Так как с системой я разговариваю также, как с проводочками — «Слышь ты, с##ка!! Охренела чтоле?!», то я вспомнил об одной замечательной системной переменной DEVMGR_SHOW_NONPRESENT_DEVICES, которая позволяет хорошо почистить базу данных (и реестр) от записей о старых устройствах. Но — обо всём по порядку.
Переменная среды DEVMGR_SHOW_NONPRESENT_DEVICES заставляет Диспетчер устройств показывать все-все устройства, записи о которых есть в базе данных Windows (часть хранится где-то в системных папках, часть в реестре — поэтому я пишу о базе данных). Для начала нам надо её установить или создать, если до этого такой шаг никогда не делался.
Тыкаем по значку Мой компьютер правой кнопкой, выбираем Свойства (горячие клавиши: Win+Break). Открывается откно «Свойства системы».
Переходим в нём на вкладку «Дополнительно», и в самом низу видим кнопку «Переменные среды». Она нам и нужна. Кстати, замечание в сторону: на этой же вкладке в рамке «Загрузка и восстановление» находится кнопка «Параметры», за которой сныкана очень полезная галочка «Выполнить автоматическую перезагрузку», которая на свежей Windows всегда стоит. А это значит, что при возникновении синего экрана (BSOD, STOP 0x…) система сразу же жестоко перезагружается, не давая его как следует рассмотреть. Настоящие пользователи не могут себе простить этого, поэтому можно зайти вэтот раздел настроек и галку снять.
Ну а у нас открыто окно «Переменные среды», где мы видим два раздела: «Переменные среды пользователя xx» и «Системные переменные». Вообще, эти все «переменные»- аналог старого доброго SET PATH= и прочих SET xx=yy в bat-файлах. Только теперь, в Windows, они делятся ещё и на персональные для пользователя, или на глобальные для всех пользователей. В локальных я обычно, когда ставлю систему, исправляю TEMP и TMP на что-то более короткое — например, перенаправляю в тот же системный каталог %SystemRoot%Temp. Раньше из-за этого ругались старые инсталляторы какого-нибудь хитрого софта и старые версии конкретно InstallShield — они не могли создать свои временные файлы по длинному пути. Это уменьшает безопасность системы, так как всякие Word’ы кладут временные файлы документов тоже в Temp и, следовательно, потенциально любой юзер может видеть их в общей временной папке.
Нам же нужны «Системные переменные», и конкретно DEVMGR_SHOW_NONPRESENT_DEVICES. Посмотрите в списке, если её нет — тогда нажимаем кнопку «Создать», и заполняем открывшееся окошко «Новая системная переменная». Если же переменная есть в списке — проверьте правильность её написания и значение — 1.
Регистр написания не имеет значения, но исторически названия переменных обычно пишут заглавными буквами. Итак, убеждаемся, что наша переменная есть в списке.
После этого обязательно нужно перезагрузить систему!
Удаление неиспользуемых устройств (часть 2)
Итак, мы перезагрузились, и теперь можно открывать диспетчер устройств. Я снова сделаю это через тот же значок «Мой компьютер» на рабочем столе (надо сказать, он только для этого там и висит). Тыкаем правой кнопкой, выбираем в меню пункт «Управление». Надо сказать, что это быстрее, чем лазить по всяким панелям управления и Пуск’ам. Сравните: Пуск > Настройка > Панель управления > Администрирование > Управление компьютером, или один клик? Хе-хе.
У нас (через некоторое время тупняка) открывается замечательная консоль «Управление компьютером», в которой нас интересует всего один пункт: «Диспетчер устройств». Тыкаем на него слева в дереве, и справа у нас радостно открывается другое дерево — всяких устройств, которые подключены в системе и для которых стоят драйвера.
Консоль «Диспетчер устройств»
Мы, не менее радостно сразу же лезем в меню «Вид», выбирая пункт «Показать скрытые устройства» и, если наша переменная DEVMGR_SHOW_NONPRESENT_DEVICES была установлена верно и система была перезагружена, мы увидим список устройств раза в два-три больше, чем обычно.
Показать скрытые устройства
Ради интереса можно раскрыть какую-нибудь ветку, чтобы посмотреть, как же система выводит информацию о подключённых и неподключённых устройствах. Я развернул раздел «Клавиатуры» и USB-устройств. Почему вообще так много устройств и откуда они берутся? Дело в том, что система (не от дурости, а для умности) запоминает не только код производителя (VendorID) и модель (ModelID) устройства, а ещё и то место на шине, куда оно подключено. Для всяких плат — это номер (или какой-то внутрений идентификатор) слота PCI, PCI-E, для USB — номер разъёма. Каждая такая комбинация считается совершенно отдельным устройством, для которого нужны драйвера.
Почему же система тогда не просит драйвера от, например, принтера, если мы его переткнули в другой разъём? При первом подключении принтера — понятно, система не знает устройство и просит дрова. А при последующих к другому разъёму? В этом случае работает база данных драйверов, где прописано что для VendorID+ModelID — такой-то драйвер. И при изменении подключения устройства система берёт тот же драйвер, какой и был, ничего не спрашивая.
Итак, рассмотрим скриншот повнимательнее. Зелёным я выделил те устройства, которые система знает (они подключены) в данный момент. Красным — те, которых нет (они сейчас не подключены). Сама система их, если приглядеться, маркирует или яркой, или затенённой иконкой. Клавиатур две, потому что это ноутбук с подключенной отдельной клавиатурой по USB. Так как дырок USB у меня 4, и ещё было две разных клавы, то этих «Клавиатура HID» наплодилась куча. Можно смело удалить те, которые серые.
По аналогии можно найти записи о всех-всех флэшках, которые когда-либо тыкались в этот компьютер и прочих других устройствах. Вот она — вся тайная жизнь на ладони :))
Ну а нам ещё надо показать, где же можно поменять (или освободить) себе красивый портик COM для наших задач. Эти порты (даже те, которые получаются от RS-232<>USB преобразователей) лежат в разделе «Порты (COM и LPT)». Моё устройство маркируется как CS COM-USB Bridge, и изначально вдруг повисло на COM22. Мне же хотелось получить назад свой COM16 (на скрине он уже есть). Только включив «Показать скрытые устройства», я понял всю глубину грехопадения Эти чёртовы сотики отожрали себе ВСЕ порты, какие могли!! Естественно, они были не подключены сейчас к системе, изначально их было не видно, а на моём порту COM16 стояло гордое «(используется)». Потому что я переткнул разъём своего Ke-USB24A в другую дырку. А это, видите ли, уже новое мля устройство! Ну ничего! Старое с COM16 было удалено, и текущий девайс был переназначен на тот, старый порт.
Как это сделать? Лезем правой кнопкой на девайс, выбираем свойства (особо резвым можно просто два раза щёлкнуть левой). Показал на примере другого порта.
Открывается окно свойств устройства, где нас интересует вкладка «Параметры порта». Особо отмечу, что все эти скорости, чётности: а) всё равно настраиваются программно в той проге, которая общается с таким USB-RS-232 устройством, б) По USB всё равно ни на что не влияют. Тыкаем кнопку «Дополнительно».
И у нас открывается мелкое окошко, но с огромным списком портов. Вообще,номер порта зарезервирован от 1 до 65535, тут решили ограничиться 256. Вот так! А вы- COM1-COM4. Кстати, это хороший камень в сторону тех идиотин, которые делают программаторы (и другие важные и нужные устройства) со старым софтом, где окошко выбора порта выглядит как 4 переключателя-точки (radio-button): «Выберите порт: () COM1 (*) COM2 () COM3 () COM4». И всё. Поэтому, кстати, у меня в проге управления порт выбирается списочком.
Огромный список COM-портов
Здесь можно выбрать любой свободный порт. Я постарался перегруппировать все девайсы так, чтобы высвободить самые первые номера портов. Высвободились COM1 и COM2 — мне хватило. Ещё важное замечание: правильные данные об «(используется)» обновляются всё же после перезагрузки, так что два-три раза систему подёргать придётся. Мне лень — в статье нужно было показать только принцип. Играйтесь!
Ну а я же сделал себе свой любимый COM16 под девайс, включил свет и пошёл заниматься своими делами. Вот так. Ибо нефига.
Как назначить COM-порт USB-устройству Windows 10?
- Откройте диспетчер устройств Windows.
- Щелкните Порты (COM и LPT), чтобы расширить выбор. …
- Щелкните правой кнопкой мыши устройство, название которого вы хотите изменить, и выберите «Свойства».
- Щелкните «Параметры порта», а затем нажмите кнопку «Дополнительно».
Найдите правильный COM-порт
Щелкните правой кнопкой мыши значок «Пуск» в Windows и выберите «Диспетчер устройств». Откройте раздел «Порты (COM и LPT)». Найдите «PI USB to Serial» и отметьте, какой COM-порт он использует.
Разверните раздел Порты (COM и LPT). Верно-щелкните COM-порт и выберите Свойства. Перейдите на вкладку «Параметры порта» и нажмите «Дополнительно». Измените номер COM-порта на доступный номер COM-порта.
Вы можете проверить, какое устройство использует какой COM-порт в диспетчере устройств. Он будет указан в списке скрытых устройств. В диспетчере устройств выберите View — Show Hidden Devices. Теперь, когда вы развернете раздел (ПОРТЫ) COM-портов, вы увидите все перечисленные здесь COM-порты.
РЕШЕНИЕ
- Перейдите в Диспетчер устройств Windows> Многопортовые последовательные адаптеры.
- Выберите адаптер и щелкните правой кнопкой мыши, чтобы открыть меню.
- Щелкните ссылку «Свойства».
- Откройте вкладку «Конфигурация портов».
- Нажмите кнопку «Настройка порта».
- Выберите номер порта и нажмите ОК.
- Нажмите OK, чтобы применить изменения.
Запустите диспетчер устройств и выберите «Действие»> «Добавить устаревшее оборудование».
- Выберите «Установить оборудование, которое я вручную выбрал из списка».
- Прокрутите вниз и выберите Порты (COM и LPT), затем нажмите Далее.
- Выберите порт связи.
- Нажмите «Далее», а затем «Готово».
- Элемент COM-портов теперь будет отображаться в разделе «Устройства и принтеры».
Откройте Диспетчер устройств на вашем главном компьютере / ПК. Подключите UPort к главному компьютеру (хосту). В диспетчере устройств разверните дерево контроллеров универсальной последовательной шины.. Вы увидите, что ваш собственный COM-порт указан как порт связи (COM1).
Как определить порты на моем компьютере?
Как определить используемые порты на компьютере
- Нажмите «Пуск», затем «Панель управления». Перейдите в «Диспетчер устройств». В XP вы щелкаете значок «Система», затем вкладку «Оборудование».
- Выберите раскрывающееся меню «Просмотр», затем выберите «Ресурсы по типу».
- Щелкните «Устройства ввода-вывода», чтобы увидеть список используемых портов.
Как проверить, работает ли порт?
Чтобы проверить, правильно ли работает COM-порт компьютера, вы можете сделать простой тест с обратной связью. (В тесте с обратной связью сигнал отправляется с устройства и возвращается к устройству или возвращается по шлейфу.) Для этого теста подключите последовательный кабель к COM-порту, который вы хотите проверить. Затем закоротите контакты 2 и 3 кабеля вместе.
USB-соединениям не присвоены номера COM-портов. если это не USB-последовательный адаптер, который затем назначит виртуальный com-порт #. Вместо этого им назначен адрес.
Ошибка «Не удалось открыть последовательный порт» означает, что вы не иметь правильный порт связи, выбранный в Проектах. Перейдите в «Параметры» -> «Параметры проекта» -> на вкладке «Связь» выберите правильный «Последовательный порт» в «Последовательные параметры».
Когда вы подключаете компьютерный интерфейс синхронизации к USB-порту, Windows назначает устройству номер COM-порта. Если вы используете другой USB-порт в следующий раз, когда вы его подключаете, или если вы также используете USB-принтер, им может быть назначен другой номер COM-порта каждый раз, когда вы их используете.
A user has an old program which needs to use COM1 to access door system.
The user’s computer is changed from WinXP to Win10 Pro which doesn’t has COM port. So will use USB to serial cable.
After installed the usb serial cable, it is shown as «USB Serial Port (COM3)».
Then do the following procedures to change it to COM1
Change to COM1
————————————————————
USB Serial Port > Properties > Port Settings > Advanced
Then change COM Port Number to COM1
It shows «USB Serial Port (COM1)»
————————————————————
Then can access the door system successfully.
After reboot the computer, it can’t access the door system again.
I notice this:
C:UsersAdministrator>change port /q
COM2 = DeviceSerial0
COM4 = DeviceStnSerial0
COM5 = DeviceStnSerial1
The Device manager still displays «USB Serial Port (COM1)» there.
Then do the following procedures.
USB Serial Port > Properties > Port Settings > Advanced
(is still using COM1)
click default and exit.
Then check this.
C:UsersAdministrator>change port /q
AUX = DosDevicesCOM1
COM1 = DeviceVCP0
COM2 = DeviceSerial0
COM4 = DeviceStnSerial0
COM5 = DeviceStnSerial1
Run the door system successfully again.
Tried several times to restart computer. Need to click default at advanced of «USB Serial Port (COM1)» Port settings on every startup.
Dos command: Change port /q will appear first two port after do the port setting above.
AUX = DosDevicesCOM1
COM1 = DeviceVCP0
If a user login computer, he needs to input local admin privilege while access the Device Manager to click the setting. It will be trouble.
Are there any method to fix this issue? Please kindly help. Many thanks.
-
Edited by
Tuesday, August 16, 2016 8:18 AM
A user has an old program which needs to use COM1 to access door system.
The user’s computer is changed from WinXP to Win10 Pro which doesn’t has COM port. So will use USB to serial cable.
After installed the usb serial cable, it is shown as «USB Serial Port (COM3)».
Then do the following procedures to change it to COM1
Change to COM1
————————————————————
USB Serial Port > Properties > Port Settings > Advanced
Then change COM Port Number to COM1
It shows «USB Serial Port (COM1)»
————————————————————
Then can access the door system successfully.
After reboot the computer, it can’t access the door system again.
I notice this:
C:UsersAdministrator>change port /q
COM2 = DeviceSerial0
COM4 = DeviceStnSerial0
COM5 = DeviceStnSerial1
The Device manager still displays «USB Serial Port (COM1)» there.
Then do the following procedures.
USB Serial Port > Properties > Port Settings > Advanced
(is still using COM1)
click default and exit.
Then check this.
C:UsersAdministrator>change port /q
AUX = DosDevicesCOM1
COM1 = DeviceVCP0
COM2 = DeviceSerial0
COM4 = DeviceStnSerial0
COM5 = DeviceStnSerial1
Run the door system successfully again.
Tried several times to restart computer. Need to click default at advanced of «USB Serial Port (COM1)» Port settings on every startup.
Dos command: Change port /q will appear first two port after do the port setting above.
AUX = DosDevicesCOM1
COM1 = DeviceVCP0
If a user login computer, he needs to input local admin privilege while access the Device Manager to click the setting. It will be trouble.
Are there any method to fix this issue? Please kindly help. Many thanks.
-
Edited by
Tuesday, August 16, 2016 8:18 AM
Как изменить номер виртуального COM порта
За последнее время я подключал к своему компьютеру много различных Arduino, конвертеров USB-TTL, так что подключая завалявшийся где-то USB-TTL конвертер на 3.3 вольта для подключения ESP8266, я обнаружил, что система его видит как COM22. XTCOM_UTIL поддерживает номера портов до COM6, а ESP Flash Download Tool максимум COM16, поэтому резонно возник вопрос
Ответ достаточно прост. Для начала, попробуйте сразу сделать пункт 7 этой инструкции. Возможно, что вам повезет, и остальное просто не потребуется. Если нет, то начинайте с самого начала.
1. Физически отключаем от USB все устройства, к которым подключены виртуальные COM порты (в моем случае это USB-TTL конвертер)
2. Запускаем cmd.exe (я предпочитаю использовать Far Manager — он поддерживает историю команд)
3. В командной строке пишем: set DEVMGR_SHOW_NONPRESENT_DEVICES=1 (регистр букв роли не играет — просто имена переменных окружения принято писать большими буквами). Данная команда включает отображение отсутствующего оборудования в диспетчере устройств в текущем сеансе
4. Далее вводим команду devmgmt.msc — это команда запуска диспетчера устройств. Важно запустить диспетчер устройств именно из командной строки.
5. В диспетчере устройств в меню Вид выбираем Показать скрытые устройства, идем в раздел Порты COM и LPT и удаляем все COM3-COM99
6. Обратно подключаем наше устройство (у меня это USB-SERIAL CH340) — происходит автоматическая установка драйвера и, вуаля — теперь вместо COM22 у меня COM3
7. Если вам не понравился номер порта, который автоматически выбрала система, то вы можете его сменить. Для этого в диспетчере устройств заходим в свойства нашего виртуального COM-порта, переходим на вкладку Параметры порта, далее жмем Дополнительно и выбираем любой свободный номер порта.
Если вы хотите все время контролировать номера виртуальных COM портов от различных устройств, то имеет смысл установить DEVMGR_SHOW_NONPRESENT_DEVICES=1 постоянно. Для этого нужно зайти в свойства компьютера на рабочем столе (или зайти в Панель управления — Система) и выбрать слева Дополнительные параметры системы, далее вкладка Дополнительно, затем Переменные среды. В разделе Системные переменные нажать Создать и ввести имя переменной DEVMGR_SHOW_NONPRESENT_DEVICES и ввести ее значение 1. Теперь у вас всегда будут отображаться все отключенные устройства.
Вышеперечисленные действия справедливы не только для Windows 7, но и для других версий.
Обновлено 12.06.2017
Всех приветствую вновь на страницах своего блога и сегодня хочу рассказать, как подключить com порт usb в Windows . Поговорим, что это такое и для чего используется. Я думаю для начинающих сетевых администраторов, да и просто для продвинутых пользователей это будет интересно, для меня в свое время это было просто какой-то магией, позволяющая настраивать серверное оборудование.
Что подключают через com порт
Через com порт ранее подключали модемы, мышки. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами, с приборами систем безопасности объектов, а также с многими прочими устройствами.
С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для перекачки файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) — для отладчика уровня ядра.
Но в сетевом мире через com порт подключаются к консольному порту сетевых устройств (коммутаторов, роутеров, таких брендов как Cisco или Juniper)
Какая схема подключения к коммутаторам через последовательный порт. Есть переходники, например от фирмы st-lab На одном конце USB который вы подключаете к компьютеру, а второй это com порт.
Далее к ком порту подсоединяется вот такой шнурок, com порт, а с другой стороны LAN RJ45, и вся схема дает нам один большой шнурок USB to LAN.
Установка драйверов com порт usb в Windows
К сожалению в Windows подключенные устройства, usb to com не всегда автоматически устанавливаются в системе, и приходится искать для них драйвера. Если вы покупали его сами, то в комплекте шел диск с драйверами, и можно воспользоваться им, если его нет, то смотрим как найти драйвера.
Открываем диспетчер устройств в Windows. Если не знаете как, то нажмите CTR+Pause breake, либо нажмите Win+R и в окне выполнить введите devmgmt.msc. Как видите у меня в разделе Порты (COM и LPT) нашелся на третьем COM порту неизвестный провод, и драйверов для него не нашлось у системы, о чем говорит нам желтый значок.
Переходим в свойства данного устройства и выбираем ИД оборудования, у вас будет, что то по типу usbVID_067B&PID_2303&REV_0300, вот его вы копируете и ищите в гугле или яндексе.
После чего щелкаем правым кликом по устройству в диспетчере устройств и выбираете установить драйвера, указываете до них путь и ставите, если все ок, то у вас пропадет значок предупреждения.
Далее вы уже можете использовать возможности com порта, с помощью таких утилит на подобие Putty, где вы выбираете пункт Serial и указываете нужный порт Com порта, посмотреть его можно в том же диспетчере устройств.
Надеюсь вы научились и разобрались как подключать com порт usb в Windows.
Create virtual COM ports in Windows 10 with USB Serial Converters
Most often, virtual COM ports in Windows 10 install automatically when a user connects a converter to a computer with internet access. Unfortunately, there are Serial Converter device drivers that won’t automatically install on certain operating systems.
This is not a major issue, as users can simply install the drivers utilizing the disk that comes with their specific Serial Converter.
Follow the instructions below to install Serial Converter device drivers from a disk:
- After inserting the CD into the disk drive, connect the USB Serial Converter to an open USB port.
- The “Found New Hardware Wizard” should run automatically, and will guide users through the remaining installation.
- Once prompted to connect with Windows Updates (which will ask to search for available drivers), choose the “No, not at this time” option.
- Follow all instructions to complete driver installation using the provided CD.
- After the VCP Driver installs successfully, users will find their USB Serial Converter in the Windows Device Manager.
- ○ Under “Ports (COM & LPT)”, the device will be labeled as “USB Serial Port (COMx)”
- ○ Under “Universal Serial Bus controllers”: the device will be labeled as “USB Serial Converter”.
- After installing the Virtual COM Port Driver, users should check their Windows Device Manager to ensure all drivers are installed properly.
- If drivers haven’t been installed correctly, a yellow exclamation icon is displayed under the “Ports (COM & LPT)” or “USB Serial Bus Controllers” menu.
- To fix any issues with installation: right-click the yellow exclamation icon, click “Update Driver”, and then search for the necessary driver (located on the disk provided with the USB Serial Converter).
How to change COM port settings in Windows 10
Some software applications are designed to only operate with designated serial ports. If you need to work with this kind of program, you may need to know how to find port numbers in Windows 10 so you can modify them if necessary.
In many cases when working with older devices or applications, you will be called upon to change COM port numbers to successfully operate the programs and peripherals. Some legacy equipment is only capable of working with specifically named serial ports.
The following procedure allows Windows users to change the COM port number for any attached device.
Just follow these simple steps on a Windows 10 machine to change the default COM port number.
- In Device Manager, navigate to the COM & LPT ports section and locate the device which needs its number modified. Right-click on the selected device and choose Properties in the displayed menu.
- Open the Port Settings in the Properties window and select the Advanced button.
- The Advanced Settings window is where you perform the number reassignment. You select an available port number from the list presented in the lower-left of the window. In our example, we are updating the device’s number from COM 3 to COM 5.
- Save the settings by clicking the OK button. This will close the open windows. The new number may not be assigned until the device is removed and reconnected to the computer.
Tip: Here is what you can try if COM ports are not showing in Device Manager:
- Open Control Panel.
- Search for “device” using the box in the top-right corner and select Device Manager from the results.
How to Reset com ports Windows 10
COM port (Communication port) is the title given to the port serial interface that’s located in a common (IBM compatible) computer.
There are occasions when computers offer users one or two physical COM ports (RS-232), but today’s models usually lack these physical COM ports. It should be known that COM ports don’t always refer to physical ports. Virtual ports are available as well. These ports are developed when a USB-to-UART adapter is used—most often utilized by FTDI and Croduino.
See below for multiple examples of such devices (AKA cell phones, USB modems, RFID readers, card readers, etc.)
In each instance where Windows registers a new device (one which possesses a new ID), Windows connects that device to an empty port, from COM 1 port if you didn’t have any connections before, then (COM2, COM3, COM4, etc.—from 1 to 255).
Additionally, every port is exclusively assigned to a single device, remaining occupied (Windows displays the COM port as “in use”) even when the device isn’t connected anymore.
For a majority of the time, this isn’t an issue unless users attempt to run certain legacy software (software that struggles to function with COM-ports higher than 9.)
One example is when an app functions effectively with COM1 to 9, but fails if no unoccupied COM ports below COM10 are available.
Another problem can occur when certain devices require far too many COM ports to function.
Specific adapters could reserve up to 30 (or more) COM ports. This situation means users are forced to delete COM ports being used in Windows—or switch a currently occupied COM port to a different device.
The tutorial below will explain how to clear currently occupied COM ports, as well as how to disable the numbering of new ports.
- Step 1: Hit Win+R (write regedit then click Enter).
- Step 2: Search through folders:
HKEY_LOCAL_MACHINESYSTEMCurrentConstrolSetControlCOM Name Arbiter
. - Step 3: Located in the right panel, double-click the right click ComDB.
Note: This opens a window displaying port addresses.
- Step 4: Enter all zeros to reset.
- Step 5: Click OK after confirming changes, and now the ports are reset.
What is USB serial port driver FTDI
Virtual COM port (VCP) drivers make USB devices appear as additional COM ports that the PC can access. USB devices can be accessed by application software similarly to how it would access standard COM ports.
Future Technology Devices International Limited’s software is offered “as is”. Any and all described (or implied) warranties (including, but not limited to, implied warranties of merchantability and fitness for a particular purpose) are disclaimed.
In no event shall Future Technology Devices International Limited be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused, and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
FTDI drivers can be used only in conjunction with products based on FTDI parts.
Когда вы подключаете к компьютеру новое COM или некоторые USB устройства (например, USB модем, мобильный телефон, Bluetooth адаптер, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему номер COM порта в диапазоне от 1 до 255 (COM1, COM2, COM3 и т.д.). При повторном подключении этого же устройств, ему назначается номер COM порта (Communication Port, или Serial port), зарезервированный за ним ранее. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптера Bluetooth, в системе появилось сразу 10
!!!!
новых COM портов).
Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, и отказываются работать с COM100 и выше. Или видят только COM1-COM9 устройства. Что делать, если подключенное устройство получило высокий номер COM порта? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты?
Содержание:
- Изменить номер COM порта устройства в Windows
- Определяем процесс, который использует COM в Windows
- Сброс назначенных COM портов Windows через реестр
Изменить номер COM порта устройства в Windows
В Windows можно вручную изменить номер COM порта, назначенный устройству. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить. Для этого:
- Откройте диспетчер устройств (Device Manager) командой devmgmt.msc;
- В меню выберите View->Show Hidden Devices;
- Затем разверните Ports (COM & LPT) и найдите в списке устройство;
- Перейдите на вкладку Port Settings и нажмите кнопку Advanced;
- Текущий номер COM порта, назначенный устройству указан в поле COM Port Number;
- Чтобы изменить его, раскройте выпадающий список и выберите номер COMпорта, который хотите задать.
Но чаще всего изменить номер COM порт на другой не получится, так как все «низкие» COM порт уже используются (in use);
- В этом случае нужно попробовать удалить резервацию COM порта за другим устройством. В ветке Ports (COM & LPT) найдите которому назначен нужный вам номер COM порта (бледная иконка означает, что данный COM порт назначен, но в сейчас это устройство не подключено);
- Щелкните по нему ПКМ и выберите Uninstall;
- Теперь вы можете назначить освобожденный COM порт другому устройству. Еще раз откройте свойства вашего устройство, перейдите на вкладку Port Settings -> Advanced. Задайте свободный номер COM порта для вашего устройства.
Однако такой способ позволяет освободить занятый COM порт не во всех случаях.
Вы можете вывести полный список занятых COM портов в Windows с помощью PowerShell:
Get-WMIObject Win32_SerialPort | Select-Object Name,DeviceID,Description
Можно определить номер COM порта для определённого устройства по его имени, например:
Get-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*Arduino*"}|select name, deviceid
Или
Get-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*GPS*"}|select name, deviceid
Определяем процесс, который использует COM в Windows
Вы не сможете освободить COM порт устройства, которое используется Windows или запущенной программой, процессом. Сначала вам нужно завершить процесс/программу, которая использует сейчас COM порт. Чтобы определить имя процесса, который использует COM порт понадобится утилита Process Explorer (https://docs.microsoft.com/en-gb/sysinternals/downloads/process-explorer).
Сначала нужно вывести имя службы, которая использует COM порт. Выполните команду PowerShell:
get-pnpdevice -class Ports -ea 0| Select Name, PNPDeviceID, Status, Service
Имя службы данного COM порта указано в столбце Service. Например, для COM2 это Serial. Теперь нужно запустить Process Explorer с правами администратора и выбрать в меню Find -> Find Handle or DLL. В строке Hangde or DLL substring введите значение Service, полученное ранее. В нашем примере это
Serial
.
Process Explorer должен показать процесс, который использует сейчас ваш COM порт. Чтобы освободить COM порт, завершите процесс или программу.
Сброс назначенных COM портов Windows через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter
- Откройте редактор реестра (regedit.exe) и перейдите в указанную ветку.
Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации COM портов.
- Значение параметра ComDB в двоичном формате определяет список COM портов, зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100);
Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.
- Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.
Примечание. В разделе HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM можно увидеть полный список COM портов, доступных в Windows.В разделе HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM можно увидеться список COM портов, подключенных к системе.
- В ветке HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPorts содержится список назначенных COM портов. Все ненужные порты можно удалить (в нашем примере мы оставим только COM3 и удалим остальные);
- Отключите все оборудование и перезагрузите Windows;
- После перезагрузки включите оборудование в нужном порядке (переустановите конверторы USB-to-serial и т.д.). Все обнаруженные COM-порты автоматически определяться системой и им будут последовательно выделены номера COM портов.
Также вы можете использовать следующие две бесплатные утилиты для очистки занятых (In Use) COM портов:
- COM Name Arbiter Tool – утилита для освобождения занятых COM портов. Запустите утилиту с правами администратора, выберите COM порты, которые вы хотите освободить и нажмите Clear unused Reservations и Remove non-present devices;
- Device Cleanup Tool – утилита используется для поиска в реестре информации о ранее подключенных устройств (в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnum) и удаления неиспользуемых устройств и очистки резерваций COM портов.