実際のところ
#include <M5Stack.h>
#include <mcp_can.h>
#include <SPI.h>
const int SPI_CS_PIN = 12;
MCP_CAN CAN(SPI_CS_PIN);
void setup() {
M5.begin();
M5.Power.begin();
while (CAN_OK != CAN.begin(CAN_500KBPS)) {
M5.Lcd.println("CAN BUS init failed. Retrying...");
delay(100);
}
M5.Lcd.println("CAN BUS init success!");
}
void loop() {
unsigned char len = 0;
unsigned char buf[8];
if (CAN_MSGAVAIL == CAN.checkReceive()) {
CAN.readMsgBuf(&len, buf);
unsigned long canId = CAN.getCanId();
M5.Lcd.printf("Receive: ID: 0x%lX, Length: %d, Data: ", canId, len);
for (int i = 0; i < len; i++) {
M5.Lcd.printf("0x%02X ", buf[i]);
}
M5.Lcd.println();
}
}