这是我的密码:
for a in range (100):
ser = serial.Serial(
port = '/dev/ttyAMA0',
baudrate = 38400, #115200 is SMC-MRU, 9600
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
timeout = 1
)
counter = 0
while 1:
x = ser.readline(18)
x2 = x.split(',')
Yaxis = float(x2[1])
Xaxis = float(x2[0])
偶尔我会犯错误。你知道吗
为了纠正这个问题,我必须再次运行代码:
x = ser.readline()
取消它,然后把18放回括号里,它就工作了。我想把它融入到剧本中,如何做到这一点是我的要求。你知道吗
像这样的?你知道吗
正如IMCoins所说,try / except是您正在寻找的解决方案。你知道吗
首先,您可以捕获InvalidLiteral异常(它应该对应于ValueError类型,如here所述),然后进行相应的处理。这可以使用except指令作为回退:
如果try中的代码以指定的Exception类型失败,则将执行相应的Exception块。注意:如果上述代码成功,则不会执行它。你知道吗
最后,还有finally指令,它总是在之后执行,而不管操作的成功与失败。正如您所说的,您必须不带参数地调用它,然后再试一次,您可能必须处理连接重置?我的想法是:
相关问题 更多 >
编程相关推荐