STM32 rpm reading Programming on CubeMX IDE

Job ID: 33311486

Budget: €30 – €80 EUR

I need to measure rpm from a Hall Sensor, and send this value over CANbus, using a STM32F103 bluepill and a CANbus shield transeiver MCP2551.
I have this already working on an Arduino MEGA and works Perfect.
But due to some Hardware design conditions, I need to switch to a powerful MCU.

To achieve:
1_Reading from 50 to 3000rpm with a 1 rpm resolution.
2_Use Can Libraries to send this Value over the CANbus. Every 100mS
3- Add a function of timeout(send 0 rpm value after a certain no rpm reading time).
4- Add some sort of lowpass filter to avoid undesired noise spike reading.

I can provide already working code for arduino if that would help.