目前,我有一个连接两个串行设备的树莓派端口。设备是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)
答案 0 :(得分:1)
您的接线似乎是错误的:
...设备A的端子1到设备B的端子2,设备A的端子2到设备B的端子1 ...
对于UART或RS232来说可以,但是对于RS485来说,正确的接线是A到A和B到B(直接,而不是将RX交叉到TX)。
重新接线即可使用。