Последовательные порты не распознаются или не обнаруживаются PySerial

На моем новом ноутбуке Dell XPS я только начал загружать все свои вкусности — и мне стыдно признаться, что я не могу заставить pyserial работать должным образом в Python 2.7. Я прошу его сделать следующее:

import serial

s = serial.Serial(0)
s.write("Hello world!")
s.close()

... и эта чертова вещь дает мне следующее (код упрощен до реальной проблемы, поэтому вам не нужно прочесывать леса моего плохо написанного Python):

SerialException: could not open port COM1: 
[Error 2] The system cannot find the file specified.

Я пытался запросить порт явно (s = serial.Serial(port="COM1", baudrate=9600), но безрезультатно. Я также пробовал COM2, COM3, COM4 и т. д. Но я не уверен, насколько высоко стоит подниматься, если все они возвращают одно и то же SerialException, понимаете?

Причина, по которой я упомянул модель своего ноутбука, заключается в том, что до меня дошли слухи о том, что Dell постепенно отказывается от последовательного подключения, но, откровенно говоря, я недостаточно разбираюсь в серийности, чтобы даже притворяться, что понимаю, о чем я говорю. здесь. Итак, я завещаю эту миссию вам, экспертам.

Спасибо за любую помощь, которую вы можете дать!


person j6m8    schedule 14.06.2012    source источник


Ответы (1)


Вы уверены, что у вас есть последовательный порт? Ваше описание проблемы говорит о том, что это не так. Я был бы очень удивлен, если бы ноутбук, выпущенный за последние десять лет, действительно имел бы его.

Хотя я могу ошибаться (я пытаюсь найти это в спецификациях XPS, когда пишу это). В любом случае, если вы используете Windows, вы можете посмотреть в диспетчере устройств в разделе «Порты (COM и LPT)»… хотя будьте осторожны, некоторые ПК будут отображать здесь пару последовательных портов, которые на самом деле используются исключительно для внутренних целей.

Если у вас нет последовательного порта, вам необходимо приобрести адаптер USB-to-serial. Посмотрите в диспетчере устройств, чтобы найти имя порта.

Вы можете приобрести USB/последовательные адаптеры в некоторых магазинах электроники или канцелярских товаров, а также на eBay.

person detly    schedule 14.06.2012
comment
Вот что я подозревал - ой. Большое спасибо за вашу помощь, хотя это не сулит мне ничего хорошего, так как этот проект должен был быть связью между веб-камерой, python и arduino — так что, по сути, последовательный, последовательный и последовательный. Я думаю, это в Radio Shack или eBay - еще раз спасибо! - person j6m8; 14.06.2012
comment
@ j6m8 Что ж, я использовал USB/последовательные адаптеры на огромном количестве ПК с любой версией Windows от 2000 до 7, Debian, Emdebian, Ubuntu и Slackware — они всегда работали сразу после установки. Я думаю, у вас все будет хорошо, просто остерегайтесь совместимости драйверов с Windows 7 (если вы используете эту ОС). Однако запуск веб-камеры может быть отдельной проблемой — вам нужно будет выяснить, какой протокол или соединение она использует. - person detly; 14.06.2012
comment
Я думаю, что этот вопрос мертв, но я использую встроенную камеру, так что волшебным образом все просто РАБОТАЕТ. Это такое облегчение после моего последнего компьютера, на котором веб-камера переходила в спящий режим всякий раз, когда она не использовалась, и теряла связь с компьютером. Каждая написанная мной программа должна была постоянно пинговать камеру, иначе она уходила в отпуск и не оставляла адреса для пересылки. - person j6m8; 14.06.2012
comment
@ j6m8 - может быть, ты просто не показался тебе достаточно интересным :P - person detly; 14.06.2012
comment
Это вполне возможно. Я чертовски скучный. При этом знаете ли вы какие-либо способы заставить Python общаться, скажем, с Arduino, без использования этого серийного номера? Я чувствую, что это может быть единственным способом. Что печально. - person j6m8; 15.06.2012
comment
Я не использовал набор Arduino, но похоже, что они просто имеют встроенный интерфейс USB-to-serial. Если вы подключаете плату через USB, посмотрите в диспетчере устройств, чтобы увидеть, доступен ли COM-порт. - person detly; 16.06.2012
comment
АГА. Блестящий. Это пока в меру неудобно для проекта, но... Так оно и есть. Спасибо! - person j6m8; 18.07.2012
comment
@ j6m8 - посмотрите на вопрос Какой кроссплатформенный метод перечисления последовательных портов в Python (включая виртуальные порты)? если вам нужен код для программного определения порта :) - person detly; 18.07.2012