我正在使用ELM327,我希望能够设置要发送的CAN消息的标头和数据部分。我看到有一个代码用于设置消息的标题
SH xxyyzz
但是我无法找到如何设置数据部分并控制邮件何时发送。
当我发送带有数据字段额外字符的PID的ASCII请求时,是否会出现这两种情况?
那会使用SH命令设置的标头吗?
有更好的方法吗?
答案 0 :(得分:0)
如果您正在使用ELM327,并且您使用的是J1850 vpw或J1850 pwm(早于2003 CAN车辆)等协议。那么您将使用它来设置标题。 / p>
标题将由xx yy zz组成 xx =消息的优先级(即68) yy =您要与之交谈的模块的目标地址(即5A) zz =发件人地址,通常可以是F1
所以你的命令看起来像这个ATSH 68 5A F1
这会设置标题..现在您要发送数据。您从现在开始发送的任何数据都将使用该标头,并将数据发送到该模块。
因此,如果你想获得RPM,你可以发送01 0C 您将得到类似41 0C 23的内容。最后一个数据字节是RPM的值。你必须弄清楚将其转换为人类可读格式的公式。在这里可以找到很多信息..
https://en.wikipedia.org/wiki/OBD-II_PIDs
顺便说一句,如果你在CAN网络上进行通信,你只需使用模块ID作为标题.. ATSH 7E0,然后发送你的数据。 2008年的所有车辆都是CAN .. 2003-2007也是如此。
答案 1 :(得分:0)
如果使用的是ELM327芯片组,则需要调用ATSH或AT SH,以首先设置标头。然后分别发送消息(数据字节)。
https://www.sparkfun.com/datasheets/Widgets/ELM327_AT_Commands.pdf
答案 2 :(得分:0)
这可能是一个老问题,但我刚刚找到了一个在线链接,其中详细描述了如何使用 ELM327 发送任意 CAN 消息。所以任何人(像我一样)通过这个问题仍然可以找到一个有效的答案。
有关使用 ELM327 发送任意 CAN 消息的详细信息,请查看此处: https://www.elmelectronics.com/wp-content/uploads/2017/11/AppNote07.pdf
最佳