丰田ECU对MCP2515+NodeMCU-32s的PID查询请求返回0x03 0x7F 0x01 0x11问题咨询
丰田ECU返回7F 01 11否定响应的排查方案
核心判断
7F 01 11里的11码对应服务/子功能无效,但你能正常读取2C4报文的发动机转速,说明ECU支持OBD-II,大概率不是完全不支持PID查询,而是请求格式或会话逻辑有问题。
具体排查点
- 目标ID错误
你用的广播请求ID0x7DF,但部分丰田ECU要求指定诊断目标ID而非广播,比如0x7E0。试试把发送目标ID改成0x7E0,再发送同样的请求数据,看是否能正常响应。 - 请求数据格式不完整
你发送的02 01 00,要确保是完整的8字节数据(不足补0),也就是02 01 00 00 00 00 00 00。有些库会忽略补0操作,只发送指定长度的字节,导致ECU判定格式错误,确认你的发送逻辑是否补全了剩余字节。 - 未进入诊断会话
部分丰田ECU需要先进入默认诊断会话:发送02 10 01 00 00 00 00 00,收到ECU的7E8 02 50 01响应后,再发送PID查询请求试试。 - 波特率匹配问题
虽然能接收报文,但发送时的波特率必须和车辆总线完全一致。丰田车型OBD-II总线常见500kbps,但部分老款是250kbps,交叉验证下波特率设置。 - ECU不支持PID范围查询
少数老款丰田只支持实时数据读取,不支持“查询支持的PID范围”这个服务。试试直接发送读取特定PID的请求,比如读取发动机转速的02 01 0C 00 00 00 00 00,如果能正常返回数据,就说明是这个原因。
内容的提问来源于stack exchange,提问作者Jahanzaib Khan
相关产品推荐
相关产品推荐

