1 ワイヤ アダプタに ascii コマンドを発行して、1 ワイヤ デバイスの温度を読み取ろうとしています。問題は、ser.write('W0144') に改行が必要ですが、何らかの理由でコードがそれを送信していないことです。コマンド ser.read(32) は、44 を返すべきときに A69000001CFD7E328 を返します (HA7E ascii コマンド/マニュアルから)。 Windows XP ハイパー ターミナルで 2 つの ser.write コマンド (/r なし) を入力すると、正常に動作します。
私はこれを1週間続けています(はい、私は初心者です)、私は困惑しています. さまざまなタイムアウトと time.sleeps を試しましたが、喜びはありません。誰でも提案できますか?
import serial
import time
ser = serial.Serial(port = 'COM1', baudrate=9600, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, timeout=0)
#show the port is open
print ser.isOpen()
ser.write('A69000001CFD7E328')
time.sleep(1)
ser.write('WO144/r')
ser.read(32)
ser.close()