需要修复。 pySerial 写阀和 readline() 值相同

问题描述 投票:0回答:1

enter image description here串口通讯readline数据获取不到正确数据。 readline 数据是之前返回的写入数据,但有时可以获得不同的数据。

这是代码


import time
import serial

ser = serial.Serial()
rereport = "COM16"   
ser.baudrate = 9600
ser.bytesize = serial.EIGHTBITS #number of bits per bytes
ser.parity = serial.PARITY_NONE #set parity check: no parity
ser.stopbits = serial.STOPBITS_ONE #number of stop bits
ser.timeout = 1

ser.xonxoff = True  #disable software flow control
ser.rtscts = 0  #disable hardware (RTS/CTS) flow control
ser.dsrdtr = 0  #disable hardware (DSR/DTR) flow control

ser.open()

ser.flushInput() #flush input buffer, discarding all its contents
ser.flushOutput()#flush output buffer, aborting current output 
            
ser.reset_input_buffer()
ser.reset_output_buffer()

wdata = "#001STA"
ser.write(wdata.encode())

time.sleep(1)

print("Start")

if ser.is_open:
    myBytes = ser.readline()
    if myBytes:
        while 1:
            ser.write(wdata.encode())
            time.sleep(0.1)
            myBytes = ser.readline().decode()
            print(myBytes)
            time.sleep(1)
    else:
        print("Can not connect")

enter image description here

python serial-port pyserial
1个回答
0
投票

我改了标题,因为标题可能会混淆你的理解。我的机器支持串行通信,然后我使用 PuTTy,它可以得到如下正确答案。 PuTTy 设置已捕获并已上传,请选中“在此处输入图像描述” #001STA #001,▒▒▒,25080,009,009,004,004,000,66,00700,067,036,0000000000000000000000000 #001STA #001,▒▒▒,25070,009,00 9,004,004,000,64,00000,067,036,0000000010000000000000000

enter image description here但是pySerial无法从加工中获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.