Arduino due + mcp2551
The biggest trouble you are going to find is the voltage levels. The MCP2551 works at 5V and your MCU is 3.3V. I personally don't have experience with this MCUs, but some STM32 MCUs are 5V tolerant on some pins, including the CAN_TX and Can_RX and it's fine to use a 5V Transceiver like the MCP2551.

Anyway, you still can replace the CAN Transceiver with one that has a built in level shifter,  like one of the following:


MCP2562
ATA6561
SN65HVD256
NCV7351D13


I've used all the above, except the TI one, and they all talk nicely between each other. Some have different features, like silence or advanced sleeping modes.

Cheers