首先,让我先说一句,我对蟒蛇很陌生,这里没有自我。我有这个代码,我拼凑在一起,从不同的网站,其最终目标是,它将输出一个十六进制代码到一个OBD-II芯片,并等待一个响应。此响应(也称为HEX )被转换为十进制处理并发送到输出。很简单对吧?
嗯,有两个问题。
其中之一是.readline()删除响应的第一个字母。
例如,如果我想要“> For 327”,我会得到“> if 327”。
另一个更大的问题是,当我使用.readline()时,我只收到我发送的请求,例如,如果我使用下面的代码:
serialport.write("01 0D \r")
speed_hex = serialport.readline().split(' ')
speed = float(int('0x'+speed_hex[6:8], 0 ))
print 'Speed: ', speed, 'km/h'` 我想.readline返回41 0D 15,而不是得到类似于E\r\r01 0D \r \r"的东西
speed_hex = serialport.readline().split(' ') 这也会返回一个错误,但我将为此单独发布一个帖子。
有什么想法吗?谢谢
发布于 2013-07-27 14:19:48
我怀疑您的串口设置与板的设置不完全匹配,请尝试使用终端,直到您得到确切的设置,然后使用这些设置。
注意,您不需要在0x前面加上一个十六进制值,您可以在其中使用int(s,16),其中s是您的子字符串。
https://stackoverflow.com/questions/17898730
复制相似问题