我使用python和pyserial尝试发送命令并获取响应。这是我的示例代码:
import serial
ComPort = serial.Serial('COM4') # open COM4
ComPort.baudrate = 115200
ComPort.bytesize = 8
ComPort.parity = 'N'
ComPort.stopbits = 1
ComPort.timeout = 1
a= "FE0652"
data = a.decode('hex')
No = ComPort.write(serial.to_bytes(data))
msg = ComPort.read(1024)
print (msg.encode('hex'))
我使用了C编写的另一个工具,它正确且完整地显示了输出。但是使用Python,它几乎失去了一半的响应。例如:
预期:
ff5206
ff0023
ff0002
ff8080
ff8080
ff8080
ff8080
ff8003
......
观察到的:
ff5206
ff0023
ff8080
ff8080
ff8003
......
答案 0 :(得分:0)
在写入和读取之间添加一些延迟:
time.sleep(0.01)
另外,尝试按字节读取:
s=''
while ComPort.inWaiting() > 0:
s += ComPort.read(1)