bg

5 частых ошибок при работе с COM портом

Частые ошибки при работе с COM портами в Windows

COM порт занят. Отказано в доступе

Ошибка COM порт занят (англ. COM port is busy) или Отказано в доступе (англ. Access denied) в большинстве случаев означает одно и то же.

В операционной системе Windows только одна программа может использовать COM порт. Т.е. порт открывается в эксклюзивном режиме. В этот момент никакая другая программа не может обычным способом открыть и использовать тот же порт.

Вариантом решением проблемы будет провести ревизию всех открытых программ, которые могут использовать этот порт и закрыть их.

  • Это могут быть и службы Windows, которые работают в фоновом режиме. Остановить службу можно в панели управления → Службы. Останавливайте только известные вам службы, поскольку некоторые из них могут быть важны для работы ОС.
  • Это могут быть фоновые задачи и зависшие процессы. Их можно проинспектировать в Диспетчере устройств → Подробности.
  • Особо зависшие и принудительно завершенные процессы могут оставить порт занятым и после остановки. Тогда остается только способ с перезагрузкой компьютера.
  • Редко, это драйверы некоторых устройств могут занимать порт (например, драйвер мыши, который ошибочно определил наличие устройства на этом порту).

Программа Advanced Serial Port Monitor может помочь вам с определением имени процесса, который занимает порт.

  1. Скачайте Serial Port Monitor (первая ссылка) и установите на вашем компьютере.
  2. Нажмите правую кнопку мыши на иконке программы и выберите "Запустить от имени Администратора".
  3. Выберите ручной режим работы в меню Режим.
  4. Выберите COM порт в списке портов и нажмите Открыть.
  5. Программа не сможет открыть порт, как и другое приложение, но покажет имя процесса.
  6. Если имя отображается как System, то порт используется каким-то драйвером устройства и более точно определить не представляется возможным.
  7. Определив имя процесса, вы можете посмотреть детали о нем в Диспетчере задач.

Список COM портов с описанием

Ошибка COM порта в момент его открытия

Ошибка COM порта в момент его открытия может возникать если программа использует неверные параметры связи при инициализации порта

  • Скорость передачи данных. Попытка использовать скорость, которая не поддерживается устройством. Попробуйте открыть порт на стандартной скорости 9600.
  • Количество бит данных. Драйвер последовательного порта или само устройство не поддерживает комбинацию бит данных, стоп битов, четности. Попробуйте открыть порт с относительно стандартными параметрами 9600 8N1.
  • Другие параметры связи. Программой запрашивается недопустимый размер буфера для входящих данных (если есть такая настройка). Неверно задаются параметры программного контроля передачи данных (Xon/Xoff).
  • Устройство физически не включено (отсутствует питание). Частая ошибка для преобразователей RS232-Ethernet.
  • Попытка открыть не тот порт. Попытка открыть порт по номеру, который не существует в системе.

Ошибка COM порт недоступен

Разновидность более общей "Ошибки COM порта" выше и означает, что нет связи с удаленным преобразователем RS232-Ethernet по сети. Требуется проверить ping с устройством, прохождение пакетов. Убедиться, что не изменились параметры сети.

Ошибка COM порта во время работы

В данном пункте мы исключаем проблемы с передаваемыми данными, например из-за помех на линии.

Ошибка COM порта во время работы обычно возникает для извлекаемых устройств: преобразователи RS232-Ethernet, RS232-USB. Когда во время работы разрывается физическая линия связи с устройством. Часто, для возобновления передачи данных нужно переподключиться к устройству.

Данная ошибка часто возникает для преобразователей USB-COM если имеется ненадежный контакт в разъеме или включена опция оптимизации энергопотребления для устройства (можно отключить в диспетчере устройств).

Программа не видит COM порт

Если программа не видит COM порт, то возможны следующие причины:

  • Проблемы с драйвером. Откройте диспетчер устройств и убедитесь, что там нет восклицательного знака на устройстве. Возможно, что нужно установить драйвер устройства.
  • Старая программа. Некоторые старые программы не могут работать с портами, номер которых больше или равен COM10. Попробуйте назначить другой номер порта в свойствах устройства в Диспетчере устройств. Воспользуйтесь Advanced Serial Port Monitor, который поддерживает много способов поиска портов, чтобы убедиться в наличии порта в системе.
  • Скрытый порт. К сожалению, доступ к порту возможен только по специальному идентификатору из определенных программ.

Смотрите также

Анализатор RS232
Мониторинг RS232
Перехватчик (сниффер) данных
Режим наблюдателя (Spy)
Сканер COM порта
5 частых ошибок при работе с COM портом в Windows
Узнать COM порт приложения или посмотреть все COM порты в Windows