python串口数据读取代码带回车return\r
python serial data read code with carriage return \r
这是我从 Artix-7 串口读取数据的工作代码。但它来自马车return。喜欢;
'FFFDB03\r'
'FFFFB606'
'\r00006C0'
'D\rFFFFD8'
'1B\rFFFFB'
'037\r0000'
'606F\rFFF'
'FC0DF\rFF'
'FF81BE\r0'
'000037D\r'
如何解决这个问题,我可以在 serial.Serial() 设置中设置 CR 和 LF。有知道的请回复
#!/usr/bin/python
import serial, time
ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.xonxoff = False
ser.rtscts = False
ser.dsrdtr = False
try:
ser.open()
except Exception, e:
print "error open serial port: " + str(e)
exit()
if ser.isOpen():
try:
ser.flushInput()
ser.flushOutput()
while True:
print repr(ser.read(8))
except Exception, e1:
print "error communicating...: " + str(e1)
else:
print "cannot open serial port "
解决同步问题的方法是一直读到\r
。这可以通过用以下内容替换您的内部循环来完成:
max_packet = 8
while True:
data = ser.read_until(terminator='\r', size=max_packet*2)
print repr(data[:-1])
这是我从 Artix-7 串口读取数据的工作代码。但它来自马车return。喜欢;
'FFFDB03\r'
'FFFFB606'
'\r00006C0'
'D\rFFFFD8'
'1B\rFFFFB'
'037\r0000'
'606F\rFFF'
'FC0DF\rFF'
'FF81BE\r0'
'000037D\r'
如何解决这个问题,我可以在 serial.Serial() 设置中设置 CR 和 LF。有知道的请回复
#!/usr/bin/python
import serial, time
ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.xonxoff = False
ser.rtscts = False
ser.dsrdtr = False
try:
ser.open()
except Exception, e:
print "error open serial port: " + str(e)
exit()
if ser.isOpen():
try:
ser.flushInput()
ser.flushOutput()
while True:
print repr(ser.read(8))
except Exception, e1:
print "error communicating...: " + str(e1)
else:
print "cannot open serial port "
解决同步问题的方法是一直读到\r
。这可以通过用以下内容替换您的内部循环来完成:
max_packet = 8
while True:
data = ser.read_until(terminator='\r', size=max_packet*2)
print repr(data[:-1])