jihongyuan 发表于 2016-3-15 16:51:01

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

    在看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;   
}
页: [1]
查看完整版本: CAN总线当中ID位的转换函数怎么转换的