本帖最后由 freeelectron 于 2018-9-2 16:56 编辑
+ D1 x4 m" o- H5 [. F& S. {
) k; Q' n& p. l2 Y0 E. D 通过任务1:主要熟悉调用MC API实现电机基础操作,了解速度参数设定 。
2 H: A% C. q; [1 E, x) H$ i 添加代码,通过最简单的方法,将代码添加到while (1)即可: - while (1)1 ^& C5 q/ V+ W
- {
! B" u4 }, x7 S& N B
5 |% I N$ {* o, Z* ^+ p2 K- /* USER CODE END WHILE */) s% N& @! W( t+ A) g- d
$ W) m' e9 ^! L) a! F3 e1 z- /* USER CODE BEGIN 3 */
* P$ G$ l7 \* G" G* e* u - MC_ProgramSpeedRampMotor1(3000/6,1000);
|7 Z, V# v# k* h - MC_StartMotor1();
$ Z% {' K8 I! b - HAL_Delay(10000);9 b2 ~+ j4 c# C5 {
- MC_StopMotor1();4 C: J9 O$ g7 e8 ^5 f. J
- HAL_Delay(5000);
& z7 l. Y3 u% M" O - }
' h' V+ S5 [) U1 i$ ] - /* USER CODE END 3 */
复制代码
) C3 o( l$ a4 v, I
/ ?1 n4 I- e- \3 X( q2 J/ z9 V 速度波形查看:$ J" V$ x x. n- a5 m5 ^8 m
& I9 S& P1 ]$ W r2 A" h0 n9 J# }- [& u
API说明: void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms );! _$ |- S0 c4 M8 s( [& @ J
//设置速度指令。.在调用此函数后速度指令在 hDurationms 设置的时间内由当前速度变化到 hFinalSpeed设置的目标速度。2 f( l2 ]/ p5 k: ]* { ] I
MC_StartMotor1();4 U+ U# W8 E c$ ]& f
//启动
' Z! j- ^) T8 @9 h! c n MC_StopMotor1();/ r3 G' i3 [ }. ]! P
//停止
; B3 n' s' y! Y f
+ x7 c3 t! u. G+ l5 e! o7 Z" K" F; E5 {& n) g
|
最终目标速度的按照ST的转速定义是0.1Hz,转子的0.1HZ也就是0.1r/s。电机转速的常规表达是RPM,即转每分;ST的MCSDK中有三种速度的表达。这里使用的是 0.1转每秒。如果电机电机的转速是1000转,这里的值就是1000[rpm]/60s/10=16.7[0.1rps]。