CANバスモジュールを使ってデータ送受信する(受信側復習)
しばらく放置していたら、自分の書いたスケッチがわからなくなったので、 ブログ投稿しながら復習することにしました。 送信側 SAMD XIAOとMCP2515 受信側 Arduino MKRZERO(SAMD)とMCP2515の組み合わせです。 私が使うための最低限の情報だけなので、もっと掘り下げたい方は詳しいサイトを探して下さい。 ※テストしてわかったこと※ 理由はわからないが、送信側で、1byteの中で7bitしか使えない事がわかった。 受信側は送信側の7bitに合わせるしかありません。 Amazonで購入したCANバスモジュール CANコントローラ(MCP2515)とトランシーバ(TJA1050)のICが載っています。 loop()関数中スケッチ抜粋 int packetSize = mcp.parsePacket(); if (packetSize) { if (mcp.packetId() == packetId11) { //送信側IDと一致(packetId11) id11_value = 0; byte receivedData[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; while (mcp.available()) { for (int i = 0; i <= 7; i++) {//受信した0~8byteを配列に入れていく receivedData[i] = (byte)mcp.read(); }//for }//while //receivedData[0]~[8]配列内のデータを処理して送信元データへ復元する for (int i = 0; i <= 7; i++) {//配列を順に呼んで ...