投稿

11月, 2023の投稿を表示しています

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++) {//配列を順に呼んで       ...