pyserial:我收到了我发送的内容

时间:2018-02-15 11:11:22

标签: python pyserial

我试图通过串口打印机从机器上得到答案。 但我不知道为什么我收到我发送的信息!

with serial.Serial(port,
                       baudrate=9600,
                       bytesize=serial.EIGHTBITS,
                       parity=serial.PARITY_NONE,
                       stopbits=serial.STOPBITS_ONE,
                       #timeout=0.5,
                       xonxoff=False,
                       rtscts=False,
                       dsrdtr=False
                       ) as ser:
        print(port,'opened!')

        ser.reset_input_buffer()
        o1='at+cgmr\r\n'
        x=ser.write(o1.encode()) #without encode() error!
        print('sended',x,'bytes','-->',o1)
        sleep(1)
        y=ser.readline(10) #ser.readline() is the same and read(10) as well

        print('answer',y)

输出是:

COM3 opened!

sended 8 bytes --> at+cgmr

respuesta b'at+cgmr\r\r\n'

我必须接受“好的”#39;或者“不好”'。 任何想法?

1 个答案:

答案 0 :(得分:0)

该设备可能会回复它所获得的内容,然后发送回复。您是否尝试增加收到的字节数?

如果您执行y = ser.read(100)(启用超时),您将获得所需的所有内容。

另一种方法是读取与可用字节完全相同的字节数:

y = ser.read(ser.in_waiting)

y = ser.read(ser.inWaiting())

(取决于pyserial的版本)。