Hello @DonCorr,
Are you using the ST Motor Control SDK firmware to spin the motor? If yes, you can use its
MC_ProgramSpeedRampMotor1() API to set a negative speed reference and the motor will spin in the opposite direction.
Note however, that you cannot reverse the speed of the motor this way. The sensorless FOC code will lose the control of the motor at low speed. If you want to go from a positive to a negative speed (or vice versa), you'll need to stop the motor when reaching low speed (around 10% of the max speed, but that depends on the load; for this setup, with no or a very light load, one can go down to around 1200 RPM), set a negative (or positive...) speed ramp and then start the motor again (with MC_StartMotor1()). You may also need to tune with the rev-up parameters to your needs. If you use the ST Motor Control Workbench that comes with the SDK, go to the Sensorless start-up parameters page or the Speed Sensing Config. panel to configure them.
Another option would be to play with the open loop mode, switching between closed and open loop when spinning the motor at low speeds. Using the ST Motor Control Workbench that comes with the SDK, you can do that by ticking the Open Loop check box in the Debug Settings section of the Stage Configuration panel (Don't forget to regenerate, rebuild and reload you application in the STM32). But that option may be tricky to use.
In the hope it'll help.