RS-232设备回应PySerial中的所有串行写入

时间:2016-08-08 04:34:05

标签: python serialization pyserial

我的Python 2.7程序正在使用pySerial与RS232 / RS485设备(manual here, page 40)进行通信。

问题:然而,在超时后,写入串行端口的所有内容都会被回显为serial.readline的响应。这是为什么?

打印序列:

Serial<id=0x1006e4350, open=True>(port='/dev/tty.usbserial-AL01MZAQ', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=3, xonxoff=False)

例如,如果我写入串行

#01RD\n

我收到回复

#01RD\n

而不是

*01_7.60E+02\n

更改pySerial中的波特率而不是设备上的波特率也会导致写入后超时的回显。不应该有不匹配的波特率导致胡言乱语被退回?

1 个答案:

答案 0 :(得分:0)

如果您发送字符串使用回车符,而不是换行符。 在发送命令之前,您可能必须使用回车符来唤醒设备。然后删除打印输出语句中的额外字符。

  
    

运行cmd_send(x)

  

x ='#01RD' def cmd_send(x):
    尝试:         ser.write(x +'\ r')         out =''         睡眠(0.1)         而ser.inWaiting()&gt; 0:             out + = ser.read(1)         如果出来!='':             打印         其他:             打印“没什么”     除了例外,e:         打印“serial error:”+ str(e)