web-dev-qa-db-ja.com

PySerialを使用してCOMポートから読み書きする方法は?

Python 3.6.1とPySerialがインストールされています。

接続されているCOMPORTのリストを取得できます。 COMポートにデータを送信し、応答を受信できるようになりました。どうやってやるの?次に試すコマンドがわかりません。

コード:

import serial.tools.list_ports as port_list
ports = list(port_list.comports())
for p in ports:
    print (p)

出力

COM7-多機能なUSB-to-Serial通信ポート(COM7)

COM1-通信ポート(COM1)

PySerial Documentation から、COMポートを開く方法は次のとおりであることがわかります。

シリアルをインポート

>>> ser = serial.Serial('/dev/ttyUSB0')  # open serial port

>>> print(ser.name)         # check which port was really used

>>> ser.write(b'hello')     # write a string

>>> ser.close()             # close port

Windowsで実行していますが、次の行でエラーが発生します。

ser = serial.Serial( '/ dev/ttyUSB0')

これは、Windowsでは「/ dev/ttyUSB0」が意味をなさないためです。 Windowsでは何ができますか?

7
Neil Dey

これ はあなたが望むものかもしれません。執筆に関するドキュメントを確認します。 Windowsでは、/ dev/tty /なしでCOM1やCOM2などを使用します。これは、UNIXベースのシステムの場合です。読み取るには、データを待機するs.read()を使用し、書き込むにはs.write()を使用します。

import serial

s = serial.Serial('COM7')
res = s.read()
print(res)

それが送信されている場合、整数値を取得するためにデコードする必要があるかもしれません。

6
pointerless