Проблема
У меня проблема с чтением доступных COM-портов в Cygwin. Поэтому в основном я подключаю arduino, а затем использую скрипт python для отображения доступных COM-портов.
Проблема заключается в том, что когда я подключаю arduino в первый раз, а затем выполняю свой скрипт, он не показывает никаких COM-портов , Я должен открыть Serial Monitor Arduino и только тогда, когда я запускаю свой скрипт, он показывает COM-порт.
Arduino использует порт COM5.
Скрипт не возвращает COM-порты, когда arduino подключен, но команда ls /dev
видит "ttyS4":
Затем, когда я открываю последовательный порт Arduino и перезапускаю свой скрипт:
Я использую Cygwin версии 3.1.4, Python 3.6.9 и Pyserial 3.4.
Python скрипт:
import sys
import glob
import serial
def serial_ports():
""" Lists serial port names
:raises EnvironmentError:
On unsupported or unknown platforms
:returns:
A list of the serial ports available on the system
"""
if sys.platform.startswith('win'):
ports = ['COM%s' % (i + 1) for i in range(256)]
elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
# this excludes your current terminal "/dev/tty"
ports = glob.glob('/dev/tty[A-Za-z]*')
elif sys.platform.startswith('darwin'):
ports = glob.glob('/dev/tty.*')
else:
raise EnvironmentError('Unsupported platform')
result = []
for port in ports:
try:
s = serial.Serial(port)
s.close()
result.append(port)
except (OSError, serial.SerialException):
pass
return result
if __name__ == '__main__':
print(serial_ports())
Что я нашел
После некоторых исследований я нашел следующее: { ссылка }
У вас все еще может быть проблема с блокировкой ввода до получения CR - я делаю .
И { ссылка }
Однако последовательный порт не будет работать, пока вы не используете программный последовательный терминал Arduino, ИЛИ Putty, ИЛИ команда Cygwin 'screen', чтобы открыть последовательный порт Arduino.
Эти ответы относятся к 2011 и 2013 гг., я сталкиваюсь с одной и той же проблемой, и каждый раз, когда я хочу запустить свой код, я должен открыть Серийный монитор первый ich немного раздражает. Так что я думаю, что это проблема Cygwin, связанная с виртуальными портами, и при открытии монитора Serial он позволяет Cygwin показывать COM-порт, но мне не удалось найти обходной путь.