1

我将 HC-05 连接到 Arduino 的 Serial 3。我还能够成功地与车内的 OBD2-ELM 适配器配对,

我的草图中有一个代码可以与 OBD/ELM 进行简单的通信

if (Serial3.available()) {
    Serial.write(Serial3.read());
}
if (Serial.available()) {
    Serial3.write(Serial.read());
}

挑战是这样的:
如果我输入 ATZ,我会得到“ELM327 v2.1>”
我输入 ATTP5,我会得到“OK>”
输入 ATRV,返回“12.6”
但是如果我输入 0105,我会得到不同的响应,例如:
“LM327410v2 ELMv241 M2.11099""OK>LM7v41A""OK> OK > 41055.1 327v"

其他时候我得到“4105 5A >”的正确响应

当我输入 0100 或任何其他 PID 代码时,我得到相同的结果。

请任何人知道可能导致此问题的原因以及如何解决此问题。

谢谢

4

1 回答 1

0

首先,请记住,默认情况下,ELM327 适配器​​响应终止是\r>(您可以通过 更改此设置ATL1)。直接在控制台上打印会导致问题。尝试替换\r\n然后您应该会看到更好的输出,例如:

>ATRV
11.9V

>0100
18 DA F1 10 06 41 00 B8 7B 30 10 00
18 DA F1 17 06 41 00 80 00 80 03 00

当然,实际输出会随着您发送 PID(例如0100)还是内部 ELM327 命令(例如ATRV)而有所不同。

于 2018-09-02T18:54:12.183 回答