如何确保它实际上是打开串口

时间:2013-02-11 09:01:48

标签: python python-2.7 pyserial

我需要打开串口设备的端口,但如果没有打开或有异常,它必须不断尝试打开门,直到它打开。 Python 2.7.3过了一会儿我得到了这个错误:

  

“RuntimeError:调用Python时超出了最大递归深度   对象“

你能帮助我吗?

我的代码:

def opendisplay():
    try:
        lcd = serial.Serial(
        port='/dev/display', 
        baudrate=9600, 
        timeout=0,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS
        )
    except Exception, e:
        print "Error! can't connect to display Lcd check USB-Serial \n" + str(e)
        opendisplay()   
    return lcd

dsp=opendisplay()

1 个答案:

答案 0 :(得分:0)

正如Martin / Shadow所说,循环而不是递归:

def opendisplay():
    while True:
        try:
            # Try to connect
            lcd = serial.Serial(...)
            return lcd
        except Exception as e:
            # Connection failed
            print "Error! etc"
            time.sleep(1)

如果您想继续尝试一分钟,可以使用for _ in range(60)代替