I have to fight that problem for a long time now.
There are 2 MCP2515 CAN Interface Chips connected to each other. The one is controlled by Arduino, the other one by STM32 board.
Scheme: (-> := send)
Arduino->MCP2515->MCP2515->STM32
If I set the baudrate on Arduino to 50k and on STM32 to 50k there is no receive interrupt on the second MCP2515. When I double the baudrate on Arduino to 100k there will be an interrupt and the data is correctly transferred.
The strange thing is: CFG1 CFG2 CFG3 Register Settings are identical on both MCP2515 Chips! Sure I can double the Frequency all the time but baud's like 31K25 need 62K5 which is not in the library. Hope someone encountered the same issue or can help out with this.
I also tried this code for Baudrate references:
https://github.com/latonita/arduino-canbus-monitor/blob/master/mcp_can.cpp
by the way: both run on 8MHz Crystal Oscillators
problem solved partially, the double frequency was because Arduino IDE was using headers in the lib directory not the custom directory outside of the folder!
if I go to 10kBaud or below the interrupt now doesn't respond. Is it maybe too low to be handled?