我正在尝试使用转换模块(SSI到RS232)读取我购买的传感器的数据。我通过USB /串行转换器将模块插入我的Windows笔记本电脑。
当我在串行模式下使用Putty时,我可以发送命令$ 2RD并从传感器单元接收相应的响应。当我运行脚本尝试做同样的事情时,单位返回:''
以下是我正在使用的代码:
import sys
import serial
import time
ser = serial.Serial(
port='COM4',
baudrate=9600,
timeout=1,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
)
while True:
ser.write('$2RD'.encode())
#time.sleep(1)
s = ser.read(26)
print s
其他几点说明:
答案 0 :(得分:0)
s = ser.read(26)
应该是ser.read(size=26)
,因为它需要关键字参数而不是位置参数。
此外,您可以尝试设置超时以查看在特定时间之后发送的内容,否则如果未按照pyserial的读取文档中的指定发送26个字节,则该函数可以阻止:
从串口读取大小字节。如果设置了超时,则可能会根据请求返回较少的字符。没有超时,它将阻塞,直到读取所请求的字节数。