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

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

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑 2 [6 i' [% `8 A# s8 n' h7 v

2 u6 m! [! o! E6 L3 F6 k
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png 7 \3 _: Y3 }% i7 L/ Q, J
        代码添加:
        主函数,添加头文件:
  N( Z8 Z! ~* R/ ^/ b( s
  1. /* USER CODE BEGIN Includes */( d$ }& ?! T2 y+ I
  2. #include "mc_tuning.h"- N, W, H2 K% v# w  F9 M( }3 g; E
  3. #include "mc_tasks.h"
    0 A" Z1 Q! \9 x  M5 Z  ?& f! s8 t: t

  4. ; X% m) z& i# T) b2 p
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */. m5 U, d- e6 _
  2.   static int16_t Speed_Kp,Speed_Ki;
    " f) d2 E- u& ~5 Z9 o3 g
  3.   MCT_Handle_t* pMctHdl;
    + R: T+ U; B& ~) u6 ~' P
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)
      `  ^2 V% \9 s$ A: M
  2.   {3 d7 G. X/ i0 |( B7 E
  3. / Z% Z3 m5 F9 x7 e
  4.   /* USER CODE END WHILE */: n* Y6 e8 G* O, u4 j$ W6 Z9 n
  5. 8 U; Z' X" f. P4 h+ K1 i
  6.   /* USER CODE BEGIN 3 */* U9 S9 L$ }' k9 M2 z
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);0 r3 r) t% Y* m4 E$ ~7 U& C4 ?
  8.                 MC_StartMotor1();# S+ j" U  v: q: ^+ x! C
  9.                 HAL_Delay(10000);
      ~2 O* Q. e9 H4 ^: X$ B* B
  10.                 MC_StopMotor1();0 N6 j% P$ I) y; u( P/ o
  11.     HAL_Delay(3000);
    1 e% M7 o1 I3 F* e. U4 Q% w
  12.                 % l' |6 d8 S) U. o
  13.     pMctHdl = GetMCT(M1);
    , Z8 E+ I5 p' L( |
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);2 s; }& S: N6 p# i3 _
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);' p% z0 q! v/ t: s. d( ~. [
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
      y2 N0 T4 w6 Z" d5 J3 x1 p
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);7 K. ^# [+ a& u: r
  18.                 ' {: R7 H. n3 f: N, O5 y$ e- w
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);0 g" p  R# e5 g' a
  20.     MC_StartMotor1();
    ' N9 P9 e3 ?, R$ S, O" C
  21.     HAL_Delay(10000);
      Y  F3 t1 X; m
  22.     MC_StopMotor1();+ Z/ I7 C$ u# o! U# s# @
  23.     HAL_Delay(3000);
    : Y% J6 b/ P1 ]' \# w3 x& q1 p
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);2 Q; b" {0 P# Y9 l- u9 y
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);
    , j% r# O- K! s1 \, y2 c
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);: g2 f* O9 b6 k5 p/ Q8 b% _
  27.     MC_StartMotor1();
    & r! A, y0 N3 r: B
  28.     HAL_Delay(10000);
    / @  V9 G5 u& d. l
  29.     MC_StopMotor1();
    / F$ s2 W- k8 d
  30.     HAL_Delay(3000);                 
    7 U* h. `0 e9 ?
  31.   }8 Z! H3 S1 u2 j. k' c% X, e0 d1 a0 j' S
  32.   /* USER CODE END 3 */$ A- g  M2 K! q& n4 J
  33. 4 {7 Z* }5 V* @( Q
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
( `( A# u5 ]: s  Z. h3 y
         速度波形查看:5 m, e3 {+ h% y. b8 Y. {1 p
6.png
4 {+ t, T$ s4 V" ~2 W4 j

" Q* ^3 b/ c8 e) x9 F/ C, O
# d) a3 n& `4 l" f
收藏 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 手机版