MCP2515 波特率问题

MCP2515 Baudrate Issue

我现在必须和这个问题斗争很长时间。

有2个相互连接的MCP2515 CAN接口芯片。一个由Arduino控制,另一个由STM32板控制。

方案:(-> := 发送)

Arduino->MCP2515->MCP2515->STM32

如果我将 Arduino 上的波特率设置为 50k,将 STM32 上的波特率设置为 50k,则第二个 MCP2515 上没有接收中断。 当我将 Arduino 上的波特率加倍到 100k 时,将出现中断并且数据已正确传输。

奇怪的是:两个MCP2515芯片上的CFG1 CFG2 CFG3寄存器设置完全相同! 当然,我可以一直将频率加倍,但像 31K25 这样的波特率需要 62K5,这不在库中。 希望有人遇到同样的问题或可以帮助解决这个问题。

我也试过这段代码用于波特率参考:

https://github.com/latonita/arduino-canbus-monitor/blob/master/mcp_can.cpp

顺便说一句:运行 8MHz Crystal 振荡器

问题部分解决,双倍频率是因为 Arduino IDE 在 lib 目录中使用 headers 而不是文件夹外的自定义目录!

如果我达到 10kBaud 或以下,中断现在不会响应。是否太低而无法处理?