本帖最后由 freeelectron 于 2018-9-2 16:56 编辑
% c) G8 `. R9 `! Z5 c" n& Z" Y1 G" {6 r, S4 H& P
通过任务1:主要熟悉调用MC API实现电机基础操作,了解速度参数设定 。; s! Z* b; L3 d) x% S
添加代码,通过最简单的方法,将代码添加到while (1)即可: - while (1)
$ C7 \/ ~' k& g. }1 a3 {' l - {
& Y6 g# l% T0 m. M! Y" }1 @ - # ~" t0 K6 c* J* Q
- /* USER CODE END WHILE */- {' O2 g* m, Y8 a9 `) H+ ]
% W0 s9 r/ ^. G' Z& D0 U. ]- /* USER CODE BEGIN 3 */
/ H9 w6 E; D- ]% K0 p - MC_ProgramSpeedRampMotor1(3000/6,1000);
$ l# h! d2 ?6 L- c, j, w - MC_StartMotor1();
}# \ R" ]; J# d: F - HAL_Delay(10000);" p7 F- f2 C7 {& h" m+ W5 M
- MC_StopMotor1();
# |( i. L' ^4 [2 ` - HAL_Delay(5000);
; w& f1 w& W! x6 O' Z' c5 { - }/ m2 ~/ z; U- {6 d
- /* USER CODE END 3 */
复制代码 1 n, i0 P1 K* @. \# d( f, e2 H
! J5 r' \0 \$ J, ]" } w0 A 速度波形查看:$ z& E, V( T; u9 r: `
! m4 r/ S; Y/ l7 m
2 U. F2 J: C% E% N- e- {9 _
API说明: void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms );. d1 K8 }0 z: _* `6 w5 W4 E
//设置速度指令。.在调用此函数后速度指令在 hDurationms 设置的时间内由当前速度变化到 hFinalSpeed设置的目标速度。' W* F; }3 T$ \4 D6 v1 ~/ r. J X L$ @
MC_StartMotor1();
4 R6 f; Z0 _- X- g0 b8 y //启动
) Z$ \ M, e1 B8 [$ I) C! i MC_StopMotor1();; w1 P' F/ N7 l% \) k( @" e3 L3 O0 P5 |
//停止
_6 c& g$ k' @$ j+ Z9 G% R( D" ?7 f# s3 q
3 }* L4 Z' u4 B& t3 C |
最终目标速度的按照ST的转速定义是0.1Hz,转子的0.1HZ也就是0.1r/s。电机转速的常规表达是RPM,即转每分;ST的MCSDK中有三种速度的表达。这里使用的是 0.1转每秒。如果电机电机的转速是1000转,这里的值就是1000[rpm]/60s/10=16.7[0.1rps]。