参考になる情報を見つけたので、備忘記録として投稿します。
情報公開してくださっている方に感謝します。
笑って許してくれる方だけ見てくださいね!
本来目的のESP32受信で問題点があり、原因切り分け調査のための、
UNO R4 WIFI受信調査となっています。
送信 Arduino UNO R4 MINIMA(CANWrite.ino)+CANトランシーバ:SN65HVD230
受信 Arduino UNO R4 WIFI(CANRead.ino)+CANトランシーバ:SN65HVD230
これでやっています。
サンプルスケッチ"CANRead.ino"は決められた書式でのシリアルモニタ表示はできますが、 if (CAN.available()) {
CanMsg const msg = CAN.read();
Serial.println(msg);
}
データのみを使いたい時どうしたら良いか疑問が湧いて調べたら、次のようなコードをみつけました。
これで解決できます。 if (CAN.available()) {
CanMsg const msg = CAN.read();
//sizeof(msg.data)は"msg.data"メモリサイズをバイト単位で返す
uint8_t rx_data[20];
//メモリ領域msg.dataの先頭からmsg.dataのメモリサイズバイトをメモリ領域rx_dataにコピーする
memcpy(rx_data, &msg.data, sizeof(msg.data)); // rx_data配列へコピー
uint32_t rxId = msg.id;
uint8_t rxLen = msg.data_length;
Serial.print("id:"); // CAN_ID
Serial.print(rxId, HEX);
Serial.print(" dlc:"); // data length code
Serial.print(rxLen, HEX);
Serial.print(" data:");
for (int i = 0; i
Serial.print(rx_data[i], HEX);
Serial.print(" ");
//Serial.println(msg);
}
Serial.println("");
}
ありがたく使わせていただきます。
以上
※コメント投稿者のブログIDはブログ作成者のみに通知されます