CAN总线当中ID位的转换函数怎么转换的

2020-02-11 09:10发布

    在看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;   
}  
0条回答

一周热门 更多>