用STM32F3制作OBD-II读卡器
我开始用stm32f303k8和MCP2551收发器CAN总线制作自己的obd2读卡器。 为此,我从配置的CubeMX和使用Hal函数的Keil开始,但我仍然试图从汽车中获取数据。。直到我找到stm32f10x代码,该代码保留elm327函数并使用AT命令,但使用标准外设库创建 这是密码 现在我只想知道如何用stm32f3的hal库替换这段代码,因为ST删除了stm32f3的标准外设库 我可以在CMSIS库和Hal函数之间合并吗用STM32F3制作OBD-II读卡器,stm32,can-bus,keil,obd-ii,Stm32,Can Bus,Keil,Obd Ii,我开始用stm32f303k8和MCP2551收发器CAN总线制作自己的obd2读卡器。 为此,我从配置的CubeMX和使用Hal函数的Keil开始,但我仍然试图从汽车中获取数据。。直到我找到stm32f10x代码,该代码保留elm327函数并使用AT命令,但使用标准外设库创建 这是密码 现在我只想知道如何用stm32f3的hal库替换这段代码,因为ST删除了stm32f3的标准外设库 我可以在CMSIS库和Hal函数之间合并吗 我试图用hal库重建项目,并在代码中添加copy OBD.C,但我
我试图用hal库重建项目,并在代码中添加copy OBD.C,但我认为我需要在Config.h中做一些更改,我将帮助您学习OBDII协议 首先,你应该知道你的车的ECU。 可能ECU不支持CAN端口(ISO 15765),因此您无法使用CAN读取ECU 你的ecu型号是什么 我建议你首先在多维数据集mx中构建一个项目,启用一个串口即可 然后启用CAN协议中断 在CAN中断处理程序中,使用以下示例代码:
CanRxMsg RxMessage;
CanTxMsg TxMessage;
/* receive */
CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
printf("idv: %u ",RxMessage.IDE);
printf("exID: %04X ",RxMessage.ExtId);
printf("ID: %03X ",RxMessage.StdId);
printf("DLC: %02X ",RxMessage.DLC);
printf("DATA:");
for(i=0;i<RxMessage.DLC;i++)
{
printf(" %02X ",RxMessage.Data[i]);
}
printf("\r\n");
非常感谢您的回复!我确信我的车有CAN总线。。我将尝试你的例子,看看序列中是否有数据。。我还想知道为什么在你的主要演讲中,你要求蓝牙和K线功能。。但是您不调用CAN函数吗?您可以在OBDII.C上看到CAN函数 首先,src检测OBDII协议并初始化端口 之后,当您想要发送或接收OBDII数据时,src使用检测到的协议连接OBDII 因此CAN函数处于OBDII.C的低级别
idv: 0 exID: 80012CC ID: 43F DLC: 08 DATA: 00 40 60 FF 68 48 09 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 440 DLC: 08 DATA: FF 00 00 00 FF 47 09 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 47 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 690 DLC: 08 DATA: 00 00 00 00 00 00 0C 00
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 C8 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 440 DLC: 08 DATA: FF 00 00 00 FF 4D 09 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8C 00 00 00 00
idv: 0 exID: 80012CC ID: 440 DLC: 08 DATA: FF 00 00 00 FF 4F 09 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 440 DLC: 08 DATA: FF 00 00 00 FF 52 09 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 690 DLC: 08 DATA: 00 00 00 00 00 00 10 00
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 329 DLC: 08 DATA: 86 BD 6B 10 11 20 00 14
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 DC 00 00 00
...