Skip to main content
JGrap.1
Associate II
August 11, 2025
Solved

How can I use the API for HSO to set the new speed and accelerat duration?

  • August 11, 2025
  • 1 reply
  • 251 views

Hello,

I've use

X-CUBE-MCSDK v6.4.1

B-G473E-ZEST1S + STEVAL-LVLP01 + B-MOTOR-PMSMA1

with the HSO.

I can make it run with the GUI. But can't start the motor with API.

In the legacy, I use MC_ProgramSpeedRampMotor1(100, 1000); for 600 rpm within 1000 ms.

For HSO, I can't find the same API, but found that may need to use these:

MC_SetAccelerationMotor1()
MC_SetSpeedReferenceMotor1()

The question is how to calculate the value passing to these API, I found it different from the legacy.

 

Thank you.

Best answer by JGrap.1

Hello Gael,

I'd like to inform you that the API you recommend are working for me.

I use:

MC_SetSpeedReferenceMotor1_F(95);

MC_SetAccelerationMotor1_F(3000);

MC_StartMotor1();

HAL_Delay(8000);

 

MC_StopMotor1();

HAL_Delay(2000);

 

MC_SetSpeedReferenceMotor1_F(-95);

MC_SetAccelerationMotor1_F(3000);

MC_StartMotor1();

HAL_Delay(8000);

 

MC_StopMotor1();

HAL_Delay(2000);

to test running motor forward and reverse.

 

Thank you.

1 reply

Gael A
ST Employee
August 11, 2025

Hello JGrap.1,

I recommend using MC_SetSpeedReferenceMotor1_F() and MC_SetAccelerationMotor1_F().
The first one takes Electrical Hz as speed argument, and the second one takes Electrical Hz per Second as ramp argument.

 

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.Hope this will help,Gaël A.
JGrap.1
JGrap.1Author
Associate II
August 12, 2025

Hello Gael,

I'll try it.

Thank you.