Я очень новичок в работе с оборудованием на Python.Я недавно установил pyserial для связи с лабораторным устройством и написал некоторый предварительный код, чтобы убедиться, что оно установлено правильно:
import serial
import serial.tools.list_ports
for n in serial.tools.list_ports.comports():
print(n)
ser = serial.Serial("COM4")
ser.close()
Однако, это немедленно вызвало ошибку, и порт не смог открыться.
COM4 - USB to Serial Cable (COM4)
Traceback (most recent call last):
File "<ipython-input-8-d5870cbfac06>", line 1, in <module>
runfile('C:/Users/zach/Downloads/Research Code/CPC_read.py', wdir='C:/Users/zach/Downloads/Research Code')
File "C:\Users\zach\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:\Users\zach\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 95, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/zach/Downloads/Research Code/CPC_read.py", line 8, in <module>
ser = serial.Serial("COM4")
File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialwin32.py", line 31, in __init__
super(Serial, self).__init__(*args, **kwargs)
File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialutil.py", line 240, in __init__
self.open()
File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialwin32.py", line 62, in open
raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
SerialException: could not open port 'COM4': WindowsError(2, 'The system cannot find the file specified.')
В верхней части pyserial распознает COM4 как доступный порт, но он все еще не может подключиться.
Большая часть информации, которую я мог найти по этой ошибке с pyserial, касается людей, использующих неправильный синтаксис дляболее новая / старая версия pyserial, но я попробовал несколько версий Anaconda (2 и 3) и pyserial (2.7 и 3.4), чтобы попытаться исправить любые проблемы совместимости, а также установить другую версию python.Этот тест проводится на pyserial 3.4 и Anaconda2 / Spyder.
Какой файл pyserial специально пытается найти?Возвращаясь к serialwin32, похоже, он каким-то образом генерирует неверный дескриптор порта.