2016-11-18 96 views
0

我不明白爲什麼這個示例代碼來自mcp_can庫& &的接收到的可以使用0x1FFFFFFF的Id。什麼樣的比特會丟失?因爲這條指令會丟失3個MSB位。Canbus 2.0b標識符

if((rxId & 0x80000000) == 0x80000000)  // Determine if ID is standard (11 bits) or extended (29 bits) 
    sprintf(msgString, "Extended ID: 0x%.8lX DLC: %1d Data:", (rxId & 0x1FFFFFFF), len); 
else 
sprintf(msgString, "Standard ID: 0x%.3lX  DLC: %1d Data:", rxId, len); 
+0

根據註釋和狀態,至少有一點'32'似乎包含某種形式的頭信息。然而'0x1FFFFFFF'會給你註釋中提到的29位。 –

回答

0

這只是因爲2.0B是29位所以沒有什麼應該丟失