#include <SPI.h>
#include "mcp_can.h"
const int SPI_CS_PIN = 10;
MCP_CAN CAN(SPI_CS_PIN);
void setup() {
Serial.begin(115200);
if (CAN.begin(MCP_STDEXT, CAN_500KBPS, MCP_8MHZ) == CAN_OK) {
Serial.println("CAN BUS Shield init ok!");
} else {
Serial.println("CAN BUS Shield init fail");
while (1);
}
CAN.setMode(MCP_NORMAL); // Set operation mode to normal so the MCP2515 receives messages
}
void loop() {
unsigned char len = 0;
unsigned char buf[8];
unsigned long id = 0;
if (CAN_MSGAVAIL == CAN.checkReceive()) {
CAN.readMsgBuf(&id, &len, buf); // Use the correct function signature
Serial.print("Message Received: ");
Serial.print("ID: ");
Serial.print(id, HEX);
Serial.print(" Data: ");
for (int i = 0; i < len; i++) {
Serial.print(buf[i], HEX);
Serial.print(" ");
}
Serial.println();
}
}