gpt4 book ai didi

Python 序列号 : How to use the read or readline function to read more than 1 character at a time

转载 作者:IT老高 更新时间:2023-10-28 21:07:22 25 4
gpt4 key购买 nike

我无法使用我的程序读取多个字符,我似乎无法弄清楚我的程序出了什么问题。

import serial

ser = serial.Serial(
port='COM5',\
baudrate=9600,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=0)

print("connected to: " + ser.portstr)
count=1

while True:
for line in ser.read():

print(str(count) + str(': ') + chr(line) )
count = count+1

ser.close()

这是我得到的结果

connected to: COM5
1: 1
2: 2
3: 4
4: 3
5: 1

其实我早就料到了

connected to: COM5
1:12431
2:12431

类似于上面提到的东西,它可以同时读取多个字符,而不是一个一个。

最佳答案

我发现了几个问题。

第一:

ser.read() 一次只会返回 1 个字节。

如果您指定计数

ser.read(5)

它将读取 5 个字节(如果在 5 个字节到达之前发生超时,则更少。)

如果您知道您的输入始终以 EOL 字符正确终止, 更好的方法是使用

ser.readline()

这将继续读取字符,直到收到 EOL。

第二:

即使你让 ser.read() 或 ser.readline() 返回多个字节,由于您正在迭代返回值,因此您将仍然一次处理一个字节。

摆脱

for line in ser.read():

然后说:

line = ser.readline()

关于Python 序列号 : How to use the read or readline function to read more than 1 character at a time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com