私は今、この問題を長年にわたって解決しなければなりません。MCP2515ボーレート問題
2つのMCP2515 CANインターフェイスチップが相互に接続されています。 1つはArduinoによって制御され、もう1つはSTM32ボードによって制御されます。
スキーム: - :私は50Kに50Kにし、STM32上のArduinoにボーレートを設定した場合(> =送信)
Arduino-> MCP2515-> MCP2515-> STM32
割り込みを受け取るにはありません2番目のMCP2515で Arduinoのボーレートを100kに倍増させると割り込みが発生し、データが正しく転送されます。
奇妙なことです:CFG1 CFG2 CFG3レジスタ設定は両方のMCP2515チップで同じです! 確かに周波数を倍にすることはできますが、ボーレートには31K25のようにライブラリにない62K5が必要です。 誰かが同じ問題に遭遇したとか、これで助けてくれることを願っています。途中で
https://github.com/latonita/arduino-canbus-monitor/blob/master/mcp_can.cpp
:
私はまた、ボーレートの参照のためにこのコードを試してみましたArduinoのIDEには、ヘッダーを使用していたので、
10kと5kの作業では、Arduinoライブラリ(1つ1つ試しました)は、5と10kボーで何とか壊れています。 CANボードを搭載したラズベリーパイは、5kと10kで送信され、マイクロコントローラで動作しました。 1000Kbpsの問題は終端抵抗であったため、そこになければなりませんでした。 :) – ionman