PySerial [Ошибка 5] Доступ запрещен - PullRequest
4 голосов
/ 28 ноября 2011

Я пытаюсь написать программу на Python, которая будет циклически проверять последовательный порт (COM4) и распечатывать сообщение, когда символ «1» будет считан из последовательного порта.Я хочу послать «1» через последовательный порт от гаджета Arduino по нажатию кнопки.

Однако при попытке создать экземпляр последовательного объекта появляется ошибка «[Ошибка 5]: доступ запрещен».(Он автоматически пытается открыться при создании экземпляра, в этом и заключается ошибка, из того, что я вижу по файлу в пакете PySerial, который обрабатывает это.)

Мой код:

c = serial.Serial('COM4', 9600)
while True:
    signal = c.read()
    print signal
    print "running"
    time.sleep(2)
    c.flushOutput()

Тем не менее, он никогда не преодолеет "c = serial.Serial ('COM4', 9600)". Вот где всплывает ошибка. Как я могу это исправить?

Ответы [ 5 ]

5 голосов
/ 28 ноября 2011

ОБНОВЛЕНИЕ: Это, по-видимому, больше невозможно в PySerial 3.0.

В Windows я всегда успешно использовал подход port = .

т.е. измените свой код на:

c = serial.Serial(3, 9600)
2 голосов
/ 11 февраля 2017

Для меня решение не сработало, но сработало закрытие всех приложений, взаимодействующих с данным com-портом.

1 голос
/ 27 августа 2016

Пожалуйста, позаботьтесь о версиях Python.

Из руководства по pyserial о: class serial.Serial https://pyserial.readthedocs.io/en/latest/pyserial_api.html#classes

...........

Порт сразу открывается при создании объектакогда порт дается.Он не открывается, если для порта задан None и требуется последовательный вызов open ().

port - это имя устройства: в зависимости от операционной системы.например, / dev / ttyUSB0 в GNU / Linux или COM3 в Windows.

............

Изменено в версии 3.0: числа в качестве аргумента порта больше не используютсяподдерживается

1 голос
/ 09 марта 2013

Для Python 2.6 используйте нулевой индекс COM-порта.Для Python 2.7.x вы можете использовать полное имя «COM4».По моему опыту лучше использовать версию 2.7.Установите Python 2.7.x и Инструменты настройки (также называемые простой установкой) .Получив это, установите модуль pyserial, набрав easy_install -U pyserial (см. документ установки pyserial ).

Не забудьте добавить путь к python к PATH переменной среды.

0 голосов
/ 08 февраля 2015

, который работает с PORT COM N-1 в Python (N - это ваш номер COM)

...