我必须长期坚持这个问题。
有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晶体振荡器上答案 0 :(得分:0)
问题部分解决了,双频是因为Arduino IDE在lib目录中使用了头文件而不是文件夹外的自定义目录!
如果我转到10kBaud或以下,中断现在没有响应。它可能太低而无法处理?