Pyserial读取未返回我写出的内容

时间:2019-07-19 15:37:15

标签: python encoding raspberry-pi pyserial

目前,我有一个连接两个串行设备的树莓派端口。设备是USB到RS485 / RS422转换器。两者均通过电线连接到适当的端子(设备A的端子1到设备B的端子2,设备A的端子2到设备B的端子1)。

我能够成功地从一个设备读取和写入另一设备,但是返回的读取数据与我写入的数据不同。

例如,如果我要发送的消息是“ Te”,则我读的消息是b'U\x13\x00'

我目前在buster上运行python 3。

ser = serial.Serial(port='port 1', baudrate = 9600)
message = "Te"
message = message.encode('ascii')
while True:
     ser.write(message)
     time.sleep(1)

write.py

ser = serial.Serial(port = 'port 2', baudrate = 9600)
while True:
     serial_line = ser.read(50)#placehoder until I am able to get correct values
     print(serial_line)

read.py

除了读取的字节输出转换为我在write.py中写入的字符串外,我的输出始终是完全不同的。

编辑: link to serial devices(适用于RS-485 / RS-422)

1 个答案:

答案 0 :(得分:1)

您的接线似乎是错误的:

  

...设备A的端子1到设备B的端子2,设备A的端子2到设备B的端子1 ...

对于UART或RS232来说可以,但是对于RS485来说,正确的接线是A到A和B到B(直接,而不是将RX交叉到TX)。

重新接线即可使用。