我无法通过pySerial从RS232 OBD2接口读取响应。 代码可以成功输入数据,正如我可以从直接并行终端屏幕上看到的,但无法读取和打印响应,无论响应如何。pySerial从AT命令读取数据
现在代码无法在两种版本的Python中打印响应。 代码看起来是这样的:
from serial import * # I also tried using /from serial import Serial
import time
ser = Serial("/dev/rfcomm1", 38400, timeout=1)
#print ('Starting up, formatting responses')
#ser.write("ATZ\r"),
#ser.write("ATSP0\r"),
#ser.write("ATS1\r"),
#ser.write("ATL1\r"),
#ser.write("ATH1\r"),
#ser.write("ATF1\r")
#time.sleep(1)
#print ('We have lift-off !')
if ser.inWaiting() > 0:
ser.flushInput()
#ser.timeout = 1.
time.sleep(1)
#print (raw_data)
ser.write("AT RV\r") #The response should be something like 13.5V, but nothing
ser.timeout = 1.
msg = ser.read(size=1024)
print msg
ser.close()
我只留下了AT RV命令,因为虽然我的工作就可以了我发送的文本格式化命令来缓解工作。现在,当我发送它时,它只是给了我一个空行(尽管在同一台机器上运行的终端显示所需的输出)
代码中没有错误,并且命令经过并响应通过界面,我可以看到另一个实时术语,但是在运行Python代码时没有出现任何内容。 我该怎么办?
我尝试添加刷新部分,将超时设置为1秒,并在写入后移动了读取命令,但我得到的只是一个没有答案的空行。 –
尝试使用串行终端程序手动发出命令并查看是否可以通过线路接收答案。问题可能在其他地方。另外,您应该编辑您为问题编写的新代码。然后很容易看到是否有什么问题。 – DrV
接口接收代码发送的命令,并对它们作出响应(我可以在活终端中看到这一点),但代码无法读取,它只返回一个空格。 –