请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑 ! j0 c( L0 ?3 G/ L% q* S# I

5 y5 F* c! g2 H# Q0 j
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png
& y3 u$ d4 E* R" V8 G
        代码添加:
        主函数,添加头文件:
, ]4 B. Z$ I! ?% [. f3 x
  1. /* USER CODE BEGIN Includes */
    3 I, X- [  u2 b+ p6 C+ j9 |+ y
  2. #include "mc_tuning.h"
    ( e9 p  T8 o! m( y, L
  3. #include "mc_tasks.h"
    - \% g. k6 i" j! D+ L6 P
  4. ( u2 X7 q5 r6 ?2 _5 t) A
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */$ U& A, p8 Q6 T; S  H2 v+ a
  2.   static int16_t Speed_Kp,Speed_Ki;
    - J' E7 E; |# o8 x5 c0 [
  3.   MCT_Handle_t* pMctHdl;
    - U; J7 _" o, s6 C* c# c: `# K
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)
    3 b7 ]% r- \( }' t: M& e5 O# O- L( g
  2.   {0 ?8 F; i- o, Q. k; F5 H/ R

  3. * L1 ~' Y% |; K$ w8 X
  4.   /* USER CODE END WHILE */! n# C* f; R5 C2 ~

  5. 7 o9 e1 ~6 ~$ j2 @4 L) P! p
  6.   /* USER CODE BEGIN 3 */
    3 G& ?' E0 G: L! e2 |  H
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);+ r# W$ B6 c6 h6 y% j% e/ w, M
  8.                 MC_StartMotor1();% a. ], N% Q! c2 [: c  ]! ~
  9.                 HAL_Delay(10000);
    6 p- e0 F6 V2 z! C5 N' O
  10.                 MC_StopMotor1();5 \" e1 r& @7 ^" F3 Z3 z, j: @: _1 [. |
  11.     HAL_Delay(3000);
    6 [6 v3 @1 D" u; z$ y. G
  12.                 3 y4 z/ M/ c3 o% ?7 G) R
  13.     pMctHdl = GetMCT(M1);
    1 O+ B- a$ d# k, W2 W
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);9 f+ [% n& a9 P$ t/ \8 E9 Y
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);
    3 }' ^) ^- z# v) p% G* z* ]+ b9 ^
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);' y7 G5 ^) O) F! E& F/ H! O
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);% g+ E6 \+ G; c* J
  18.                 0 r1 ?7 T6 I5 f$ Z
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);& w4 [  N; F0 y4 ^! W/ p7 N
  20.     MC_StartMotor1();
    , v3 R1 H* C3 [: u0 V
  21.     HAL_Delay(10000);  N/ V, {% l$ p/ L/ k5 d2 b
  22.     MC_StopMotor1();
    , K) G- m2 N7 X6 y5 c8 l
  23.     HAL_Delay(3000);0 j% _. ?6 I- |# F7 V" n) d
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);
      I! L( [7 I5 @
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);2 g7 N5 `) z" t- L
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);
    ( K9 l0 x6 ^& ~- T
  27.     MC_StartMotor1();
    % d  _2 Q+ a, S9 @- `/ h+ W
  28.     HAL_Delay(10000);
    3 H* @& \0 I4 B9 j
  29.     MC_StopMotor1();$ s- a4 M6 a) M: L4 s2 G9 R
  30.     HAL_Delay(3000);                 
    . I- d1 `' _$ f& T' w8 u
  31.   }
    2 J. O6 {3 y6 i' X* i" @! F) u
  32.   /* USER CODE END 3 */% ]5 d$ Z! a0 J. D# R
  33. # q: h. `4 B8 h. Y: ^3 a$ `
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
, W, p+ c& a* ~4 p
         速度波形查看:
3 x0 k' }( S  v+ J/ c4 q
6.png ; Z# Q( T& o4 f( ?4 ]. {
. H0 i6 b* A2 u2 N- Q* c

5 O5 H5 D5 x: T8 b
收藏 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 手机版