我正在使用pyserial从串口读取数据,有时我收到的数据表现出意外
这是重要的代码
def getResponse():
while ('\r' != rbuf[-1]):
rbuf += s.read(s.inWaiting())
print("b " + binascii.hexlify(rbuf))
rbuf = rbuf.split('\r')
rbuf = rbuf[:-1]
print rbuf
for char in rbuf:
if(char == AFTER):
print('a')
elif(char == 'W'):
print("Writing to the file")
elif(char != ''):
print char
return char
getResponse()
我知道这不是编写代码的最佳方式,但有些事情会发生。
当我收到序列[' a',' A']时,返回的值最终为NONE。(我在代码中的其他地方检查了打印语句
当我收到[' W'' a' A' A']或我收到[' A']时,这种情况不会发生]
我想出了一个解决方案,但我对此非常好奇!!
谢谢
本
答案 0 :(得分:2)
我不完全理解您的代码,但我强烈怀疑您希望在函数结束时return
递归getResponse
调用的结果。如果是这样,您需要明确return
。只是打电话给这个功能不会为你做。
getResponse()
变为
return getResponse()