4

次のコードの実行に問題があります。

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 を再インストールしてみましたが、エラーは解決しませんでした。なにが問題ですか?

4

6 に答える 6

0

ポートはまだありますか?つまり/dev/tty.FireFly-16CB-SPP。今日は名前が変わるかも…

于 2011-03-31T06:53:48.813 に答える
0

OSXでこの問題が発生しましたが、ボーレートがサポートされていないという問題が発生しました。ボーレートをより一般的なものに変更すると、うまくいきました!

于 2013-10-12T19:46:07.570 に答える
0

これを試して :

ser = serial.Serial('/dev/tty.FireFly-16CB-SPP',115200)
print "port is open" if ser.isOpen() else "port is closed"

ポートの設定を手動で変更しない限り、open() を呼び出す必要はありません。

ser = serial.Serial()
ser.baudrate = 19200
ser.port = 0
ser.open()

作業が終わったら、ポートをクリアすることを忘れないでください

于 2011-03-31T07:46:44.837 に答える
0

私も同じ問題を抱えてる。

pySerial の例 (http://sourceforge.net/projects/pyserial/develop) から miniterm.py を実行するだけです。

シェルからは正常に実行されました: python miniterm -p ttyUSB0 -D が、Eclipse にロードしようとすると。そこからデバッグを実行します。それは私に与えました:

pydev debugger: starting
Traceback (most recent call last):
  File "/eclipse/plugins/org.python.pydev.debug_2.0.0.2011040403/pysrc/pydevd.py", line 1134, in <module>
    debugger.run(setup['file'], None, None)
  File "/eclipse/plugins/org.python.pydev.debug_2.0.0.2011040403/pysrc/pydevd.py", line 918, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "/root/workspace/pyserial/src/examples/miniterm.py", line 120, in <module>
    console.setup()
  File "/root/workspace/pyserial/src/examples/miniterm.py", line 101, in setup
    self.old = termios.tcgetattr(self.fd)
termios.error: (22, 'Invalid argument')
于 2011-04-13T14:49:31.330 に答える
0

Pythonを再インストールし、2.6にダウングレードしてすべてを解決しました。

于 2011-03-31T11:01:34.933 に答える