gpt4 book ai didi

python - pyserial 中 Serial.available() 的等价物是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:47:11 28 4
gpt4 key购买 nike

当我试图在 Arduino 上读取多行串行数据时,我使用以下习惯用法:

String message = "";
while (Serial.available()){
message = message + serial.read()
}

在 Arduino C 中,Serial.available() 返回可从串行缓冲区读取的字节数(参见 Docs)。 Python 中的 Serial.available() 等价于什么?

例如,如果我需要读取多行串行数据,我希望使用以下代码:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0.050)
...
while ser.available():
print ser.readline()

最佳答案

属性(property)Serial.in_waiting返回“接收缓冲区中的字节数”。

这似乎相当于 Serial.available()的描述:“字节数......已经到达并存储在串行接收缓冲区中。”

尝试:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0.050)
...
while ser.in_waiting: # Or: while ser.inWaiting():
print ser.readline()

对于 pyserial 3.0 之前的版本,使用 .inWaiting()。要确定您的 pyserial 版本,请执行以下操作:

import serial
print(serial.__version__)

关于python - pyserial 中 Serial.available() 的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38645060/

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