kwp2000-iso9141-2通讯程序.c
来自「汽车诊断程序kwp2000,iso9141-2的通讯程序」· C语言 代码 · 共 71 行
C
71 行
/**************************************************************************************
* 函数原型:BYTE SendRecv_KWP2000(BYTE *cmdbuff,BYTE *recvbuff) *
* 功 能:发送和接收KWP2000的数据 *
* 参 数:cmdbuff------发送KWP2000命令的缓冲区 *
* recvbuff-----接收KWP2000命令的缓冲区 *
* 返 回: 接收数据的长度 *
**************************************************************************************/
BYTE SendRecv_KWP2000(BYTE *cmdbuff,BYTE *recvbuff)
{
BYTE i,cs,len=0;
BYTE cmd[20];
//将命令放入命令缓冲区
for(i=0;i<=cmdbuff[0];i++) cmd[i] = cmdbuff[i];
//计算校验和
for(i=1,cs=0,len=cmd[0];i<len;i++) cs += cmd[i];
cmd[i] = cs;
//===============发送KWP2000的命令===================9,0x85,0x11,0xf1,0x23,0x40,0x00,0x03,0x01,0xee
SendString(cmd+1,cmd[0],BYTETOBYTE);
//===============接收KWP2000的命令===================
len=0;
if(RecvString(recvbuff,4,OVERTIME) == 0) return 0;
if(recvbuff[0] == 0x80)
{
//0x80,0x11,0xf1,0x02,0x21,0x01,0xa6
len = recvbuff[3]+1;
}
else
{
//0x85,0x11,0xf1,0x23,0x40,0x00,0x03,0x01,0xee
len = recvbuff[0]-0x80;
}
if(RecvString(recvbuff+4,len,OVERTIME) == 0) return 0;
return len+4;
}
/**************************************************************************************
* 函数原型:BYTE SendRecv_ISO9141_2(BYTE *cmdbuff,BYTE *recvbuff) *
* 功 能:发送和接收ISO的数据 *
* 参 数:cmdbuff------发送ISO命令的缓冲区 *
* recvbuff-----接收ISO命令的缓冲区 *
* 返 回: 接受数据的长度 *
**************************************************************************************/
BYTE SendRecv_ISO9141_2(BYTE *cmdbuff,BYTE *recvbuff)
{
BYTE i,cs,cmdlen;
BYTE cmd[20];
//将命令放入命令缓冲区
for(i=0;i<=cmdbuff[0];i++) cmd[i] = cmdbuff[i];
//计算校验和
for(i=1,cs=0,cmdlen=cmd[0];i<cmdlen;i++) cs += cmd[i];
cmd[i] = cs;
//===============发送ISO9141_2的命令===================6,0x68,0x6a,0xf1,0xb1,0x0e,0x82
SendString(cmd+1,cmd[0],BYTETOBYTE);
//===============接收ISO9141_2的命令===================6,0x68,0x6a,0xf1,0xb1,0x0e,0x82
if(RecvString(recvbuff,1,OVERTIME) == 0) return 0;
for(i=1;;i++)
{
if(RecvString(recvbuff+i,1,OVERTIME) == 0) break;
}
return i;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?