我正在读取梅特勒-托莱多七倍pH计的输出。根据手册我设置波特率,奇偶校验,停止位和数据位。设备每3秒输出一次数据。在我设置timeout=3
之前。然而,我收到了奇怪的数据:
import serial
ser = serial.Serial(
baudrate=9600,
port='/dev/ttyUSB1',
timeout=3,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.xonxoff = 1
ser.rtscts = 0
ser.dsrdtr = 0
data = []
decode = []
line = []
count = 0
while count < 100 :
data.append(ser.read())
# line.append(ser.readline())
count = count + 1
print(data)
ser.close()
data
就像:
['K', 'X', '+', '\xb1', ':', '\x02', ' ', '\x02', ' ', 'J', '\r', '\x93', '\xc9', '\xa2', 'p', '\n', '\x92', '3', '\xe9', '\xc2', 'C', '\n', 'Q', 'C', '\xa1', 'H', '\r', 'K', 'X', '+', '\xb1', ':', '\x02', ' ', '\x02', ' ', 'J', '\r', '\x93', '\xc9', '\xa2', 'p', '\n', '\x92', '3', '\xe9', '\xc2', 'C', '\n', 'Q', 'C', '\xa1', 'H', '\r', '', 'K', 'X', '+', '\xb1', ':', '\x02', ' ', '\x02', ' ', 'J', '\r', '\x93', '\xc9', '\xa2', 'p', '\n', '\x92', '3', '\xe9', '\xc2', 'C', '\n', 'Q', 'C', '\xa1', 'H', '\r', 'K', 'X', '+', '\xb1', ':', '\x02', ' ', '\x02', ' ', 'J', '\r', '\x93', '\xc9', '\xa2', 'p', '\n', '\x92', '3']
你知道我做错了什么吗?输出应该像c0H06.00pH
正如建议的那样,我用timeout=0
尝试了它,但是我得到了空字符串。我要分析模拟信号。也许什么都没有发生,但是如果我设置timeout=3
,为什么我会收到一些东西呢?你知道吗
我终于做到了。我不得不将pH计的输出模式从打印机设置为模拟。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐