I'm also not sure of the overall circuit. Is it correct or not? I'm using STM32F103C8T6.
Could I use BJT instead of MOSFET?
Yes, you can. But depending on the current consumption of the motor, the transistors may dissipate more power than MOSFETs do.
I'm also not sure of the overall circuit. Is it correct or not?
It seems correct but those N-Ch. MOSFETs may not be suitable for logic-levels such as 5V and 3.3V. The threshold voltage (VGS-th) for IRF630 to turn fully on can be as high as 4V. So, driving them with 3.3V may not be sufficient. Use logic-level-gate MOSFETs or ones having lower VGS-th instead.
Are you using PWM for motor speed control, or just switching direction?
In short, with care, you can use this (with more suitable MOSFETs) to control the motor on/off and changing direction (reversing).
If you need PWM, upgrade the gate drive current capability for Q3 and Q4, and apply PWM to them, keeping Q1 ON when PWM'ing Q4, or Q2 ON when PWM'ing Q3. DO NOT apply PWM to Q1 or Q2 without seriously upgrading their gate drive circuits.
In more detail:
These MOSFETS require 10V on the gate to switch fully on or off. At 5V, they aren't fully on, and will dissipate power instead fo driving the motor properly.
Find MOSFETs with RDS(On) specified at Vgs = 5.0V (or -5V for the PMOS). I would want to look for ones with lower Rds(on) too; below 0.1 ohm, unless I knew the motor was very small and low power.
Gate drive matters because you must switch the transistors fast for PWM, to minimise switching losses. When a transistor is somewhere between fully on and fully off, it dissipates a lot of power, so you want to do that for minimum time.
And switching a MOSFET on or off fast takes quite a high current. because the gate capacitances are rather large (and the Miller effect multiplies the effect of the drain-gate capacitance).
Q3 and Q4 (the N type) can only switch at medium speed : if you need to switch them faster for PWM, reduce R12,R13 to somewhere between 10 and 100 ohms, and make sure PA3 and PA4 inputs can both source and sink plenty of current to control the gate drive waveforms for faster switching. 100mA would be a bare minimum, 1 Amp is not too much!
Q1 and Q2 can switch on reasonably fast because U4 and U5 can supply plenty of current, but turn off times will be very slow (controlled by the 4K7 resistors). So you must wait some time (a few microseconds) after turning Q1 or Q2 off, before turning Q3 or Q4 on. The last thing you want is Q1 and Q3 ON at the same time ... that's a short circuit across the power supply!