Suitable for the stm32f4xx series, smart CAN is an easy to use, robust, CAN implementation. You can easily add devices to use the CAN protocol and the code takes care of all the devices itself.
Here is what each branch contain
Stable version of smart CAN
Cutting edge, development-in-progress version of smart CAN. This branch also contain other stuff to use with CAN such as PID.
Stable, but stability not guaranteed, newer than Master's version of smart CAN
If you don't want to configure CAN yourself, you can use an existing template to build your project on. Click this link for the project: project.
If you already have a project and just want to integrate CAN, then you would have to configure CAN yourself. Click this link for the files you need and instructions: CAN files and instructions.
All of the above information provided simply tells you how to implement CAN, which is made even easier with smart CAN. But, if you want to actually learn CAN, or to explore ST-electronics HAL implementation of CAN, then start with visting https://impeccableaslan.github.io/communication_protocols/can/can.html where you will learn lots about CAN and the CAN HAL library.
If you encounter any issues, open an issue here which will be resolved in a timely manner.