本帖最后由 freeelectron 于 2018-9-2 16:56 编辑
. C' t3 X1 V' b$ I! W V1 Z# }/ F/ q! Y, g4 a" R4 K" K
通过任务1:主要熟悉调用MC API实现电机基础操作,了解速度参数设定 。
! F4 T" F3 B( m; \ 添加代码,通过最简单的方法,将代码添加到while (1)即可: - while (1)& a9 w$ g4 k% v5 [% {" v
- {' d5 g* a! o$ c
- 3 \* D, N1 @& `' u- ^
- /* USER CODE END WHILE */% |9 `, b4 D) s1 f
; ~3 L ~4 a5 x- /* USER CODE BEGIN 3 */) g. u. {* M* f' G
- MC_ProgramSpeedRampMotor1(3000/6,1000);
' e, R% P* e/ }2 L - MC_StartMotor1();
, C: }" q+ Z$ H5 `# v9 {4 J0 W8 q - HAL_Delay(10000);
# i( _+ p0 f5 u - MC_StopMotor1();
9 E6 E" e& N1 D' U% t! d& K - HAL_Delay(5000);" }# p3 z* b+ R5 u4 @
- }- I, w0 r k( i5 p) O
- /* USER CODE END 3 */
复制代码 ( M- R5 }" p2 i
2 K. V) I1 U, k' f( c3 @, B
速度波形查看:8 f' m( U1 j/ B& z: j
, V& Y( c m9 q9 u$ k
8 F3 }1 N0 n! F8 V
API说明: void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms );
1 [( P/ Q5 p5 K3 i2 r) z3 ]3 v( L //设置速度指令。.在调用此函数后速度指令在 hDurationms 设置的时间内由当前速度变化到 hFinalSpeed设置的目标速度。
0 W9 X! F2 z3 `5 Z% ~ MC_StartMotor1();
& S7 l8 @$ o+ N: s/ {, ~$ d //启动/ b) C+ j+ a% J2 j" u' y
MC_StopMotor1();
' I5 Y2 A; a5 w: ]+ ] //停止
/ k" k# e+ l2 J! n* Q. R
5 k4 p8 M. o" U; H& H, C! s8 m/ s5 E, A( G9 ]2 I: w) K% X; ~$ ~
|
最终目标速度的按照ST的转速定义是0.1Hz,转子的0.1HZ也就是0.1r/s。电机转速的常规表达是RPM,即转每分;ST的MCSDK中有三种速度的表达。这里使用的是 0.1转每秒。如果电机电机的转速是1000转,这里的值就是1000[rpm]/60s/10=16.7[0.1rps]。