Skip to main content
JGrap.1
Associate II
Aug 11, 2025 9:49 AM UTC
Solved

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

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.

This topic has been closed for replies.
JGrap.1
JGrap.1Best answer
Associate II
Aug 12, 2025 9:29 AM UTC

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.

3 replies

Gael A
ST Employee
Aug 11, 2025 10:05 AM UTC

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'.
JGrap.1
JGrap.1Author
Associate II
Aug 12, 2025 9:05 AM UTC

Hello Gael,

I'll try it.

Thank you.