无法在Pyserial中打开串行连接:“termios.error: (22, '无效参数')”
我在运行以下代码时遇到了问题:
import serial
ser = serial.Serial(
port='/dev/tty.FireFly-16CB-SPP',
baudrate=115200,
#parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.open()
ser.isOpen()
这段代码昨天还可以正常工作,我不知道我改了什么。现在我收到了以下错误信息:
Traceback (most recent call last):
File "main.py", line 32, in <module>
bytesize=serial.EIGHTBITS
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialutil.py", line 260, in __init__
self.open()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialposix.py", line 280, in open
self._reconfigurePort()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialposix.py", line 409, in _reconfigurePort
termios.tcsetattr(self.fd, TERMIOS.TCSANOW, [iflag, oflag, cflag, lflag, ispeed, ospeed, cc])
termios.error: (22, 'Invalid argument')
我对Python完全是个新手,看不懂上面的错误信息。我尝试重新安装了Pyserial,但还是没解决这个错误。到底出了什么问题呢?
6 个回答
0
我重新安装了Python,并把版本降到了2.6,这样就解决了所有问题。
0
那个端口还在吗?我指的是 /dev/tty.FireFly-16CB-SPP
。今天它可能换了个新名字……
3
我也遇到过同样的问题。当时我用的是一个有5个接口的USB集线器,里面插了3个不同的USB设备,结果发现这个集线器供电不足。后来我换了一个外接电源的USB设备(也就是不是直接从电脑的接口取电的那种),这样就正常工作了。