gpt4 book ai didi

使用 pySerial 的 Python 3 非阻塞读取(无法使 pySerial 的 "in_waiting"属性起作用)

转载 作者:行者123 更新时间:2023-11-28 17:26:22 27 4
gpt4 key购买 nike

我这辈子都不知道如何使用我的 Raspberry Pi 在 Python 3 中进行非阻塞串行读取。

这是我的代码:

import serial #for pySerial

ser = serial.Serial('/dev/ttyUSB0', 9600) #open serial port
print ('serial port = ' + ser.name) #print the port used

while (True):
if (ser.in_waiting>0):
ser.read(ser.in_waiting)

结果:
AttributeError: 'Serial' 对象没有属性 'in_waiting'

这是我引用的引用页,它告诉我“in_waiting”存在:http://pyserial.readthedocs.io/en/latest/pyserial_api.html

(更新)相关:

  1. PySerial non-blocking read loop

最佳答案

您列出的文档链接显示 in_waiting 作为 PySerial 3.0 中添加的属性。很可能您使用的是 PySerial < 3.0,因此您必须调用 inWaiting() 函数。

您可以通过如下方式查看PySerial的版本:

import serial
print serial.VERSION

如果您使用 pip 安装了 PySerial ,您应该能够执行升级(可能需要管理员权限):

pip install --upgrade pyserial

否则,更改您的代码以使用 PySerial < 3.0 中的正确接口(interface):

while (True):
if (ser.inWaiting() > 0):
ser.read(ser.inWaiting())

关于使用 pySerial 的 Python 3 非阻塞读取(无法使 pySerial 的 "in_waiting"属性起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38757906/

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