python逐行读取数据时出现错误_Python-在可用时逐行从串行端口数据读取到列表中...

readline将一直读取数据,直到读取结束符(新行)。请尝试:read。

更新时间:

使用picocom -b 115200 /dev/ttyUSB0或putty(串行模型)检测端口和波特率是否正确。我在你的两个问题中有两个不同的端口。如果打开错误端口,read()将一直等到读取一个字节。像这样:import serial

# windows 7

ser = serial.Serial()

ser.port = 'COM1'

ser.open()

ser.read() # COM1 has no data, read keep waiting until read one byte.

如果在控制台中键入此代码,控制台将不会输出如下内容:>>> import serial

>>> ser = serial.Serial()

>>> ser.port = 'COM1'

>>> ser.open()

>>> ser.read()

_

我们需要添加读取超时来修复它。

你可以试试这个:import serial

import time

z1baudrate = 115200

z1port = '/dev/ttyUSB0' # set the correct port before run it

z1serial = serial.Serial(port=z1port, baudrate=z1baudrate)

z1serial.timeout = 2 # set read timeout

# print z1serial # debug serial.

print z1serial.is_open # True for opened

if z1serial.is_open:

while True:

size = z1serial.inWaiting()

if size:

data = z1serial.read(size)

print data

else:

print 'no data'

time.sleep(1)

else:

print 'z1serial not open'

# z1serial.close() # close z1serial if z1serial is open.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值