PySerial接收奇怪数据

PySerial接收奇怪数据,pyserial,Pyserial,我用串行电缆连接了智能电表。但是,当使用PySerial检索数据时,我始终会得到以下行: b'\x00\n' b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00 最终,我确实得到了一些数据,但甚至不是全部 输出应如下所示: /ISk5\2ME382-1003 0-0:96.1.1(4B414C37303035

我用串行电缆连接了智能电表。但是,当使用PySerial检索数据时,我始终会得到以下行:

b'\x00\n'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00
最终,我确实得到了一些数据,但甚至不是全部

输出应如下所示:

/ISk5\2ME382-1003
0-0:96.1.1(4B414C37303035313039)
1-0:1.8.1(00180.724*kWh)
1-0:1.8.2(00001.416*kWh)
1-0:2.8.1(00000.000*kWh)
1-0:2.8.2(00000.000*kWh)
[...]
!
我的剧本:

import sys
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.bytesize=serial.SEVENBITS
ser.parity=serial.PARITY_EVEN
ser.stopbits=serial.STOPBITS_ONE
ser.xonxoff=0
ser.rtscts=0
ser.timeout=None
ser.port="/dev/ttyUSB0"

ser.open()
count=0
stack=[]
while count < 25:
    p1_raw =  str(ser.readline())
    print(p1_raw)
    count=count+1

ser.close()
exit
导入系统 导入序列号 ser=serial.serial() ser.baudrate=9600 ser.bytesize=serial.SEVENBITS 序列奇偶校验=串行奇偶校验 序列停止位=串行停止位 序列号xonxoff=0 序列rtscts=0 服务超时=无 ser.port=“/dev/ttyUSB0” 爵士公开赛() 计数=0 堆栈=[] 当计数小于25时: p1_raw=str(ser.readline()) 打印(p1_原始) 计数=计数+1 塞尔克洛斯() 出口 问题似乎出在Python/PySerial上。使用cu或minicom时,数据接收正确


有什么想法吗?

在尝试各种设置后,这似乎解决了问题:

序列号xonxoff=1


尝试各种设置后,这似乎解决了问题:

序列号xonxoff=1