【问题标题】:Python reading from serialPython 从串口读取
【发布时间】:2018-09-27 16:12:09
【问题描述】:

我正在尝试在 python 中将数据从 RFID (RMD6300) 读取到 Raspberry Pi 1,但在读取 30-40 秒后没有中断,它会崩溃并显示以下错误消息:

Traceback(最近一次调用最后一次):文件“tmp.py”,第 7 行,在 string = ser.read(20) 文件“/usr/local/lib/python2.7/dist-packages/serial/serialposix.py”,行 501,已读 '设备报告已准备好读取但未返回数据' serial.serialutil.SerialException:设备报告已准备好读取 但没有返回数据(设备断开连接或端口上的多个访问?)

这是我的代码:

import serial
ser = serial.Serial('/dev/ttyAMA0',9600, timeout=1)
IDs = ["xxxxxxxxxx","xxxxxxxxxx"]
while True:
    bool = False;
    string = ser.read(20)
    if len(string) == 0:
        print "Insert tag"
        continue
    else:
        for i in range(len(IDs)):
            for l in range(len(string)):
                if IDs[i] in string:
                    print IDs[i]
                    bool = True
                    break
                 else:
                     string = string[1:]+string[0]
             if bool:
                 break
    if not bool:
        print "Not found"

【问题讨论】:

    标签: python linux serial-port raspberry-pi


    【解决方案1】:

    问题:...设备报告已准备好读取但未返回数据

    增加你的timeout

    ser = serial.Serial('/dev/ttyAMA0',9600, timeout=1)
    

    使用try ... except

    try:
        string = ser.read(20)
    except serial.serialutil.SerialException:
        except_counter +=1
        if except_counter == 5:
           break
    
        time.sleep(1)
    

    问题:...设备断开连接或端口上有多个访问?

    你能排除这两点吗?

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 2015-01-06
      • 2011-12-24
      • 2011-08-27
      相关资源
      最近更新 更多