我现在必须和这个问题做很长时间的斗争。
有两个MCP2515 CAN接口芯片相互连接。一个由Arduino控制,另一个由STM32板控制。
方案:(-> := send)
Arduino->MCP2515 2515->MCP2515 2515->STM32 32
如果我将Arduino上的baudrate设置为50k,在STM32上设置为50k,则在第二个MCP2515上没有接收中断。当我将Arduino上的波德率加倍到100 k时,就会有一个中断,数据将被正确地传输。
奇怪的是: CFG1 CFG2 CFG3寄存器设置在两个MCP2515芯片上是相同的!当然,我可以翻倍频率,但波德的像31K25需要62K5,这不是在图书馆。希望有人遇到同样的问题,或能在这方面有所帮助。
我还为Baudrate引用尝试了这段代码:
顺便说一句:两者都运行在8兆赫的晶体振荡器上。
发布于 2016-06-26 13:05:50
问题得到了部分解决,双频率是因为Arduino IDE在lib目录中使用的是标题,而不是文件夹外的自定义目录!
如果我转到10 10kBaud或以下,现在中断没有响应。是不是太低了不能处理?
https://stackoverflow.com/questions/38037839
复制相似问题