我正在尝试通过向1-wire适配器发出ascii命令来读取1-wire设备的温度。问题是ser.write('W0144')需要回车,但是由于某种原因代码没有发送回车。 ser.read(32)命令应返回A69000001CFD7E328(应从HA7E ascii命令/手动返回44)。如果我在Windows XP Hyper Terminal中输入了两个ser.write命令(不带/ r),则可以正常工作。
我去这一周了(是的,我是新手),我很沮丧。我尝试了不同的超时和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()
最佳答案
python中的转义代码需要反斜杠:
>>> ord('\r')
13
您将发送两个字符,分别是“ /”和字母“ r”:
>>> len('\r')
1
>>> len('/r')
2
>>> list('/r')
['/', 'r']
关于python - 读取连接到HA7E的1线设备的温度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10759631/