在看CAN传输的过程中有这个函数,是ID转换函数,比如我现在用的ID是0x887e,现在我将这个地址的数据传输到上位机上,用CAN盒接收数据
数据接收完成,显示ID是0x887e,但是根据这个函数来进行转换后的ID数据是 0000 0000 0001 1001 0001 0000 1110 1100,怎么看也不是0x887e
请教一下是怎么回事呢?
程序如下:
unsigned long ConvertID2MSCAN_ID(unsigned long OID)
{
unsigned long tmID=0; //接收一个报文
tmID=OID<<1; //左移一位去掉SOF位
tmID=((tmID&0x3ff80000)<<2)|(tmID&0x000fffff|0x00180000);
//tmID最高两位是空置位,屏蔽掉,再左移两位
return tmID;
}
一周热门 更多>