本帖最后由 freeelectron 于 2018-9-2 16:56 编辑
0 Z* t! [/ ]1 p1 U+ V1 M6 T( H$ x$ u9 o" b) l- Q8 N
通过任务1:主要熟悉调用MC API实现电机基础操作,了解速度参数设定 。. N- K' A. ]" E. @
添加代码,通过最简单的方法,将代码添加到while (1)即可: - while (1)2 Y6 h7 ?- c$ ]
- {
# c' v. P7 v# k j% L - % |" B) F) Y2 N- Y0 Y
- /* USER CODE END WHILE */7 G2 ]; q& X X6 [+ s9 g1 }2 T# R
- 7 |6 k% B; l( X4 {; X2 Q
- /* USER CODE BEGIN 3 */
( \. o0 Z, D; N s/ d( Q - MC_ProgramSpeedRampMotor1(3000/6,1000);3 H7 V7 r$ W) a/ \/ O
- MC_StartMotor1();2 ~+ |2 _2 n2 g
- HAL_Delay(10000);
0 A* f y6 g* L, Y - MC_StopMotor1(); D# P) S" V. B2 f8 Q9 d
- HAL_Delay(5000);
' I3 [9 c' u) v, \ - }0 e4 \2 {* V( P1 V" i
- /* USER CODE END 3 */
复制代码 3 P9 Y+ {5 ?: C0 s
4 F$ k5 {: {5 C
速度波形查看:) E) H! I3 S: g3 y4 W# x
& A; S, `0 }7 i6 f) \
; v' l$ ?: h& O! w( L API说明: void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms );3 d% ~# `# Y+ s" `2 g( ]
//设置速度指令。.在调用此函数后速度指令在 hDurationms 设置的时间内由当前速度变化到 hFinalSpeed设置的目标速度。" z1 F# z y) u# G+ W- L
MC_StartMotor1();
9 T y$ R* ~' L$ c* Z //启动
$ ?; P$ y4 M1 ^: I0 G5 Y5 J8 a; t MC_StopMotor1();9 _/ n; R$ x0 G/ s. [9 d
//停止
" m$ }; B: A& s# y4 ^4 |7 Y3 a
4 l! t, a4 {9 ^# _, k8 w) }# P( N6 t; {2 J" U B2 Y% a N9 U+ u! q
|
最终目标速度的按照ST的转速定义是0.1Hz,转子的0.1HZ也就是0.1r/s。电机转速的常规表达是RPM,即转每分;ST的MCSDK中有三种速度的表达。这里使用的是 0.1转每秒。如果电机电机的转速是1000转,这里的值就是1000[rpm]/60s/10=16.7[0.1rps]。