Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

M5stack + COMMU ModuleでCAN通信する その2:受信側

実際のところ

#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();
  }
}

参考もと

docs.m5stack.com