Buck converter for Li-Ion 2s battery charger
Two general things:


Do not drive the MOSFET directly from your MCU.
Well that actually depends .on your switching frequency.
But if you want to quickly switch on and off your FET to reduce switching losses, you need to source and sink a lot of current .


Also your MCU voltage is limited but you want to overdrive the MOSFET to switch on faster and reduce Rdson. 

You don’t want ask or expect the MCU to do this.


You need to drive the Gate at least 7-10V depending on FET higher than the source.
A common way to do this is bootstrapping.


Alternatively ,  you can float your battery/output.
And reference the FET to ground this will make driving the gate easier.
This is commonly done in LED drivers.
See figure below.



picture take from Here