你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于MC SDK5.0 API, 组件接口函数做在线参数修改,任务2

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑
/ d! c7 L4 G1 N6 ?& x: R3 M4 C* ?* B
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png
+ L9 u2 _) z. R. A" O# o4 v
        代码添加:
        主函数,添加头文件:) Q* J. l" d" l& e, r* k
  1. /* USER CODE BEGIN Includes */2 c: U0 _3 }$ k+ B; F
  2. #include "mc_tuning.h", p" ^$ y2 R4 v+ B$ _* ]
  3. #include "mc_tasks.h"
    ' ]4 I7 X6 V$ g% j% r
  4. ) ~) g6 \% U7 q
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */! |- q) ]  h- c. G
  2.   static int16_t Speed_Kp,Speed_Ki;, y% h: ~! t0 j) ^4 Y& T
  3.   MCT_Handle_t* pMctHdl;
    * z" s2 P) }6 i/ U
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)
    2 g# I% V+ u* Z- c3 i; t' U
  2.   {
    : P* ~  F4 b; u7 N# D

  3. 3 T# t' J7 v7 o7 i( g
  4.   /* USER CODE END WHILE */
    0 t# F. J4 N- N7 {- }# O

  5. 4 U. h4 K, t7 L, |
  6.   /* USER CODE BEGIN 3 */7 Y5 `. k0 S9 D8 X) |* r! l
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);
    3 S6 z8 B; a# x2 P
  8.                 MC_StartMotor1();
    / j( e& {3 }& M! \
  9.                 HAL_Delay(10000);- [; [; n5 J  C  K( O
  10.                 MC_StopMotor1();; T* D" l7 n2 A. Q5 P
  11.     HAL_Delay(3000);
    & a& R3 f' K& `6 N
  12.                
    ; L5 t5 |! |8 \9 u
  13.     pMctHdl = GetMCT(M1);3 l& L# k3 T# B' N
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);$ ~3 X; k  R- @+ s2 T6 J& o/ q3 X6 y2 R
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);4 w2 E& G% k% _1 ?$ M% t/ u
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
      v/ X8 K* v3 L7 F/ @  @
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);
    , U' N& }: i7 k0 ?7 ]7 h
  18.                 ) R  E7 A: k3 W& Q' v7 `2 ~
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);
    1 U  S1 K- w: M* r9 z$ a
  20.     MC_StartMotor1();
    ' V; C+ t9 R8 i, V* P3 |9 |  |
  21.     HAL_Delay(10000);
    + o: A+ T8 u% k. |
  22.     MC_StopMotor1();
    # G% Z1 @1 b/ Y/ S# k, y
  23.     HAL_Delay(3000);5 c7 W6 H$ e4 G+ W. R) E8 Y  b
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);; m$ j  }8 R" n# C) h
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);
    / P3 E  E  j# r# e
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);6 i2 k+ o& ^4 _1 b, O) R- x/ e4 f
  27.     MC_StartMotor1();
    " j8 G9 I8 q, i$ v5 H
  28.     HAL_Delay(10000);
    ! j( V" k8 e, H4 Q- ~# n
  29.     MC_StopMotor1();% }2 E0 q! }( p6 F% V  l" ^/ ^
  30.     HAL_Delay(3000);                 
    - y( {  h9 M4 ^/ q: d
  31.   }1 I, A1 b. H* h: t% N
  32.   /* USER CODE END 3 */
    5 y* U: @3 K7 @* m9 R
  33. 5 x* i4 C* F1 y& G
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
; X' ~8 o; ^1 ^/ _1 K. }( H0 l
         速度波形查看:3 z  f2 R* O9 _0 b: z
6.png 5 H! G+ y3 M" b/ ^, S( @" a1 ]

8 A# U, g( l% ?( D+ O

0 Z) C2 X- K! i& w1 N  P4 u# j) W
收藏 1 评论2 发布时间:2018-9-2 17:08

举报

2个回答
liujunfy527 回答时间:2018-10-26 21:22:19
谢谢分享
唐英tcy 回答时间:2019-7-1 15:03:09
谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版