Jean-Claude has made a series of blog posts on using the Controller Area Network (CAN) bus:
This is the first of what I expect to become a multi-part article series on the CAN bus. I’d like to describe the features of CAN which I find particularly elegant and useful, and will introduce a simple driver I have implemented for it as part of the JeeH library. Along the way, I’ll try to illustrate its use with a variety of small demo apps, running on either a Blue Pill (i.e. F103), or one of the STM32F4 µC families.