А может быть пропуски потому, что не используется пин 2?
Попробуйте этот скетч:
PHP код:
#include <mcp_can.h>
#include <SPI.h>
long unsigned int rxId;
unsigned char len = 0;
unsigned char rxBuf[8];
MCP_CAN CAN0(10);
void setup()
{
Serial.begin (115200);
CAN0.begin(CAN_500KBPS); // скорость CAN
pinMode(2, INPUT); // пин 2 можно переназначить
}
void loop()
{
if(!digitalRead(2)) // пин 2 можно переназначить
{
CAN0.readMsgBuf(&len, rxBuf);
rxId = CAN0.getCanId();
if (rxId == 0x306) // фильтр по ID, в данном случае по ID 0x306
{
}
}
}