さて、この投稿はかなり古いですが、人々はそれをもう一度見るかもしれません:まず第一に、CanバスはUSARTやIC2のようなユーザーフレンドリーなプロトコルではないので、あなたはあなたの缶ビットのタイミングについて非常に正確でなければなりませんが、そのためのツールがありますが手作業で計算することをお勧めします。マイクロコントローラーの場合、私はSTM32を提案し、私の意見ではPICシリーズから離れます。SAE J1939などの高レベルプロトコルを使用しないCAN-BUSのみの場合、手順は非常に単純で簡単です。
1)缶を初期化する
2)CANを構成モードにします。ボーレート、マスク、フィルターは構成モードでのみ設定できることを忘れないでください。
3)ボーレートレジスタを設定します。
4)マスクとフィルターを設定します。すべてのメッセージを受信する必要がある場合は、マスクを0x00に設定するだけです。その後、フィルターは気になりません。
5)CANを通常モードまたはループバックモードに設定します。(ループバックモードは、主にデバッグ目的で使用されます。)
人々が最初に缶を実装しようとするいくつかの注目すべき点は見逃すかもしれません:***送信を成功させるには、少なくとも2つの動作するCANノードが必要です。(もちろん、ボーレートが一致しています)。したがって、1つのノードでCANを介してデータを送信する場合、データは成功しません。送信機ノードはACKを受信しないためです。
***おそらくCANトランシバーが必要になります。トランセバーのTxピンとRxピンの間に100オームまたは同様の値の抵抗を配置することを忘れないでください。