Изменение номера 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 под девайс, включил свет и пошёл заниматься своими делами. Вот так. Ибо нефига.
Проекту исполнилось 16 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: «Донаты и Спонсорство, Список Желаний».
Когда вы подключаете к компьютеру новое 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_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
- Откройте редактор реестра (regedit.exe) и перейдите в указанную ветку.
Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации COM портов.
- Значение параметра ComDB в двоичном формате определяет список COM портов, зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100);
Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.
- Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.
Примечание. В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеть полный список COM портов, доступных в Windows.В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеться список COM портов, подключенных к системе.
- В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports содержится список назначенных 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_MACHINE\SYSTEM\CurrentControlSet\Enum) и удаления неиспользуемых устройств и очистки резерваций COM портов.
Бывают случаи, когда контроллер подключается к одному из часто занятых портов компьютера (в основном это порты с 1 по 4 включительно). В следствии этого скетчи на контроллер могут загружаться с проблемами, или вообще не загружаться. Узнать к какому порту подключился контроллер можно либо в Arduino IDE, либо в диспетчере устройств.
Выполним действия по проверке и изменению номера порта.
Шаг 1. Проверьте номер порта
Откройте диспетчер устройств, для этого щёлкните правой кнопкой мыши по меню Пуск. Выберите пункт меню Диспетчер устройств.
Откроется диспетчер устройств. Нас интересуют Порты (COM и LPT)
Здесь мы увидели что контроллер подключен к порту номер 3. Изменим номер порта.
Шаг 2. Изменение порта
Нажмите правой кнопкой мыши по выбранному контроллеру с номер порта
Выберите Свойства. Откроется окно свойств.
Перейдите в окне свойств на вкладку «Параметры порта» и нажмите на кнопку Дополнительно.
В открывшемся окне в поле Номер COM-порта выберите порт, который не используется, например, COM10.
После того, как порт был выбран, нажмите на кнопку ОК.
Так же кнопкой «ОК» закройте оставшееся окно Свойства порта.
Originally authored by: Bernie Thompson, July 4, 2011
Start by going to the Device Manager. Once there do the following: Expand the Ports ‘(COM& LPT)’
You should be looking at something like this:
As you can see Windows has set the port to COM10. However many legacy applications expect the port to be between 1-4. Let’s change that:Right click on the device and click on ‘Properties’.
Click on ‘Port Settings’. Then click on ‘Advanced…’.
Once you’re in ‘Advanced Settings for COM10’ on the bottom you can see the ‘COM Port Number: COM10’. Click on that to change it to the lowest possible number (between 1-4).
Then click ‘OK’ on all open Property Windows. Now the device should look like this:
Внесение изменений в номер ком порта может быть необходимо при подключении новых устройств или при возникновении проблем с коммуникацией между компьютером и подключенными устройствами. В данной статье мы рассмотрим, как изменить номер ком порта в операционной системе Windows 10.
1. Подключение к устройству
Перед тем как изменить номер ком порта, необходимо установить необходимое устройство и подключить его к компьютеру через USB-порт. После подключения устройства оно должно быть опознано операционной системой и автоматически установлены соответствующие драйверы.
2. Открытие Диспетчера устройств
Чтобы изменить номер ком порта, необходимо открыть Диспетчер устройств. Для этого можно использовать сочетание клавиш «Win + X» и выбрать «Диспетчер устройств» из контекстного меню. Открывается окно Диспетчера устройств, где отображаются все устройства, подключенные к компьютеру.
3. Поиск нужного устройства
В Диспетчере устройств необходимо найти устройство, для которого требуется изменить номер ком порта. Обычно оно находится в разделе «Порты (COM и LPT)» или «Универсальные последовательные шины (USB)». Найдите нужное устройство в списке и щелкните правой кнопкой мыши по нему.
4. Изменение настроек порта
После щелчка правой кнопкой мыши по устройству в контекстном меню выберите пункт «Свойства». В открывшемся окне свойств устройства перейдите на вкладку «Расширенные». Здесь вы найдете поле «Номер порта (COM и LPT)», где можно изменить номер ком порта.
5. Выбор нового номера порта
В поле «Номер порта (COM и LPT)» выберите доступный номер ком порта из списка. Если нужного номера порта нет в списке, можно нажать на кнопку «Добавить порт» для вручную указания свободного номера порта.
6. Сохранение изменений
После выбора нового номера порта нажмите кнопку «ОК», чтобы сохранить изменения. Всплывающее окно с предупреждением может появиться, если выбранный номер порта уже используется другим устройством. В таком случае можно либо выбрать другой доступный номер, либо отключить устройство, использующее этот порт.
Итоги
В данной статье мы рассмотрели, как изменить номер ком порта в операционной системе Windows 10. Для этого необходимо подключить устройство, открыть Диспетчер устройств, найти нужное устройство, изменить настройки порта, выбрать новый номер порта и сохранить изменения. Убедитесь, что выбранный номер порта не конфликтует с другими устройствами, подключенными к компьютеру.
Изменение номера ком порта может понадобиться для устранения проблем с коммуникацией между компьютером и подключенными устройствами. Благодаря простым шагам, описанным в этой статье, вы сможете справиться с этой задачей и настроить ком порт так, как вам необходимо.
Удачи вам в настройке ком порта и использовании устройств в операционной системе Windows 10!
Как изменить номер ком порта в Windows 10
В современном мире компьютеры и устройства работают с большим количеством разных портов для обмена данными. Один из наиболее распространенных типов портов — ком порт, который используется для соединения компьютера с другими устройствами, такими как принтеры, модемы или сканеры. По умолчанию, каждому устройству присваивается определенный номер ком порта в Windows 10, но иногда может возникнуть необходимость изменить этот номер. В этой статье я расскажу вам, как изменить номер ком порта в Windows 10.
Шаг 1: Откройте Диспетчер устройств
Первым шагом будет открытие Диспетчера устройств. Есть несколько способов сделать это в Windows 10:
- Щелкните правой кнопкой мыши значок «Пуск» в левом нижнем углу экрана и выберите «Диспетчер устройств» в контекстном меню.
- Нажмите клавишу Win+X на клавиатуре и выберите «Диспетчер устройств» в появившемся меню.
- Откройте «Панель управления», выберите «Система и безопасность», а затем «Диспетчер устройств».
Шаг 2: Найдите порт, который вы хотите изменить
В Диспетчере устройств найдите раздел «Порты (COM и LPT)» и разверните его. Здесь вы увидите список доступных ком портов на вашем компьютере. Выберите тот порт, номер которого вы хотите изменить.
Шаг 3: Измените номер ком порта
Чтобы изменить номер ком порта, щелкните правой кнопкой мыши на выбранном порту и выберите «Свойства» в контекстном меню. В открывшемся окне перейдите на вкладку «Порты» и нажмите на кнопку «Дополнительно». Здесь вы увидите список доступных номеров ком портов для выбранного устройства. Выберите новый номер ком порта и нажмите «ОК».
Итог
Таким образом, изменение номера ком порта в Windows 10 — простая задача, которая может пригодиться вам при взаимодействии с различными устройствами. Откройте Диспетчер устройств, найдите нужный порт, перейдите на вкладку «Порты» и выберите новый номер ком порта — все это можно сделать всего за несколько шагов.
Изменение номера ком порта в Windows 10 поможет вам установить более удобное соединение с вашими устройствами. Будьте аккуратны при изменении номера порта и убедитесь, что новый номер соответствует требованиям вашего устройства.
Надеюсь, эта статья оказалась полезной и помогла вам разобраться в процессе изменения номера ком порта в Windows 10. Следуйте описанным выше шагам и наслаждайтесь удобством и эффективностью вашего принтера, модема или другого устройства!
Как изменить номер ком порта в Windows 10
В Windows 10 ком порт – это важный элемент для общения компьютера с внешними устройствами. Как правило, каждое подключаемое устройство имеет свой номер ком порта, но иногда возникает необходимость изменить этот номер. В этой статье я подробно расскажу, как изменить номер ком порта в Windows 10 и рассчитываю, что эта информация будет полезной как новичкам в сфере IT, так и опытным пользователям.
Шаг 1: Запуск диспетчера устройств
Первый шаг – это запуск диспетчера устройств. Чтобы сделать это, нажмите комбинацию клавиш Win+X и выберите опцию «Диспетчер устройств» из списка.
Шаг 2: Поиск ком порта в диспетчере устройств
В открывшемся окне диспетчера устройств найдите и разверните раздел «Порты (COM и LPT)». Здесь вы увидите список каждого доступного ком порта на вашем компьютере.
Шаг 3: Изменение номера ком порта
Теперь, когда вы нашли нужный ком порт, выполните следующие действия:
- Щелкните правой кнопкой мыши по ком порту, номер которого вы хотите изменить, и выберите «Свойства» из контекстного меню.
- В открывшемся окне свойств ком порта перейдите на вкладку «Параметры порта».
- Нажмите кнопку «Дополнительные параметры».
- В появившемся окне «Дополнительные параметры ком-порта» выберите новый номер ком порта из выпадающего списка.
- Нажмите «ОК» для сохранения изменений.
Шаг 4: Перезагрузка компьютера
Чтобы изменения вступили в силу, требуется перезагрузка компьютера. После перезагрузки ваш новый номер ком порта должен быть успешно установлен.
![]()
Изменение номера ком порта – это простой способ настройки вашей системы под соответствующие требования устройств, с которыми вы работаете. Помните, что изменение номера ком порта может привести к проблемам с совместимостью некоторых устройств, поэтому будьте внимательны и проверьте совместимость перед изменением.
В заключение, изменение номера ком порта в Windows 10 не является сложной задачей. Если вы следуете приведенным выше шагам, вы сможете легко изменить номер ком порта с помощью диспетчера устройств. Никогда не бойтесь экспериментировать и настроить свою систему под свои потребности. Удачи вам в изменении номера ком порта и успешной работе с внешними устройствами!