NXPのLPC1768 ARM Cortex M3マイクロコントローラ(データシート、ユーザーマニュアル)を使用しています。ユーザー マニュアルのセクション「16.5.8 CAN コントローラーのセルフテスト」に記載されているセルフ テスト モードで CAN バス ペリフェラルをテストしたいのですが、うまくいきません。
NXP ナレッジベースに記載されているこれらの NXP の例を試し、NXP のサンプル コード (can_self_test コード) を使用しました。すべてのピン構成が正常に実行され、すべての CAN バス構成と CAN バス メッセージ フレームも正常に実行されます (1 つずつ制御)。ただし、このステップの後の CAN1_Send 関数内では:
CANx->CMR = 0x41;
エラー フラグが設定されます。それにもかかわらず、CAN1_Send は SUCCESS を返します。
実際、このエラーステータスは「バスオフエラー」を意味します。「バス オフ エラー」は、フレーム エラーと CAN コントローラ エラーがあったことを意味します。データフレームとCANコントローラーをテストします。できます。
CAN1とCAN2の接続にはRS-232ケーブルを使用しています。セルフ テストには、CAN1 を使用します。