本帖最后由 freeelectron 于 2018-9-2 16:56 编辑 8 [ f( b e; M. I6 U9 S, O' B
; W; R2 ]8 y: D+ I2 D
通过任务1:主要熟悉调用MC API实现电机基础操作,了解速度参数设定 。
1 k$ j5 \ |/ x3 H2 T 添加代码,通过最简单的方法,将代码添加到while (1)即可: - while (1). l6 a) _) d3 m8 ^7 G& P
- {3 [5 k! z) ^7 i# h6 l- B
- / b" a0 [. R( I# O: Z8 |' Y1 ^& K
- /* USER CODE END WHILE */
+ q/ V4 Y/ S" n8 n
) P5 k. ~. d1 w9 l/ i P0 e- y- /* USER CODE BEGIN 3 */
4 p5 E C0 Q* b0 o$ S: S- Z - MC_ProgramSpeedRampMotor1(3000/6,1000);! {6 h( F3 S; o5 R
- MC_StartMotor1();
( b/ T& P5 `1 o) R5 M5 W. C" m - HAL_Delay(10000);! Q* Q& p3 D7 f @+ a, v5 g5 \. @
- MC_StopMotor1();
4 [1 N$ b8 b/ D - HAL_Delay(5000);" L$ y# R$ d8 H \' |
- }
% q0 Q) y6 ~! m( ?( Q1 f7 k - /* USER CODE END 3 */
复制代码
; T0 F, `8 [; V; p
k: e) g' l% A5 |; i/ a# D2 M 速度波形查看:0 c7 M) @- ^# s0 {3 Y+ J
" Y6 K2 w# h9 _) Y/ v+ p# X, f
# J' \" r' c, F; }5 ~, N7 P+ @
API说明: void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms );
* c: T: y5 g8 |3 N: e0 Q: |4 S- ~ //设置速度指令。.在调用此函数后速度指令在 hDurationms 设置的时间内由当前速度变化到 hFinalSpeed设置的目标速度。+ l. I6 A- F, C' m2 E {
MC_StartMotor1();
5 ?* O \1 i+ V* P' N9 O; @ //启动
4 K* l8 g) @" n9 y5 P3 B/ ] MC_StopMotor1();* M* D) U% v: C5 V4 f+ A
//停止
- G' l4 k( S7 M+ Y# p& e
( b3 P' {$ B) f$ `8 r- y, q6 _5 V5 U. T
|
最终目标速度的按照ST的转速定义是0.1Hz,转子的0.1HZ也就是0.1r/s。电机转速的常规表达是RPM,即转每分;ST的MCSDK中有三种速度的表达。这里使用的是 0.1转每秒。如果电机电机的转速是1000转,这里的值就是1000[rpm]/60s/10=16.7[0.1rps]。