在我的生命中,我无法想出如何使用我的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' object has no attribute 'in_waiting'
这里是我引用的参考页面,告诉我“iNi等待”存在:http://pyserial.readthedocs.io/en/latest/pyserial_api.html
最佳答案
您列出的文档链接将in_waiting
显示为PySerial 3.0中添加的属性。很可能您使用的是PySerialinWaiting()函数。
您可以检查PySerial的版本,如下所示:
import serial
print serial.VERSION
如果您使用pip安装了PySerial,则应该能够执行升级(可能需要管理员权限):
pip install --upgrade pyserial
否则,请更改代码以使用PySerial
while (True):
if (ser.inWaiting() > 0):
ser.read(ser.inWaiting())
关于python - 使用pySerial进行Python 3非阻塞读取(无法使pySerial的“in_waiting”属性正常工作),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38757906/