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

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

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑 ' L# B8 [) d  Q% T# A' p
" _+ ?2 O0 s& F& {/ q' P
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png 3 A. D3 u, s% q9 Q! S- [
        代码添加:
        主函数,添加头文件:
, ]8 B# X! F. g4 ^) B; y
  1. /* USER CODE BEGIN Includes */
    : e3 w! p8 f/ I" v' u7 @
  2. #include "mc_tuning.h"7 q- _! N1 g0 S$ l" l0 M0 S
  3. #include "mc_tasks.h"
    + k; Y9 D$ I- X  u" A. I) ]
  4.   _+ p( C% D. e6 F
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */
    + D4 W* |  N9 l3 u* ^( p& [0 c& R7 ]
  2.   static int16_t Speed_Kp,Speed_Ki;4 k/ S. V" d1 m9 r- d' L  `
  3.   MCT_Handle_t* pMctHdl;
    8 C  c" n' H! L7 Z* |
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)
    - E+ J8 m! J" ^8 ]4 N' Q4 o
  2.   {
    2 @5 l, z. V( X

  3. ( Q9 i$ z+ n: M0 N9 L7 g. P
  4.   /* USER CODE END WHILE */
    6 ^" A, w; f! j0 g7 o- {, W
  5. 5 e7 Z. t, R2 j
  6.   /* USER CODE BEGIN 3 */7 \" l9 Y' e6 V, L6 m
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);
    7 h% b, I/ t! |- q  y
  8.                 MC_StartMotor1();3 ?# d$ J5 P: ?2 z4 J: A0 u
  9.                 HAL_Delay(10000);
    / d, G, ~3 i* F( S  w! z$ v
  10.                 MC_StopMotor1();
    7 a1 E; m+ m. ?
  11.     HAL_Delay(3000);
    7 Q2 Q5 G' g9 `
  12.                 + ^7 |: X" k$ E$ F5 X( B4 o% W
  13.     pMctHdl = GetMCT(M1);7 t: E. i; K9 H# y  ?5 K8 Y
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);
    9 U( L" i- N8 i: \+ j
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);
    5 P& Z# O# P" H6 d, B: [8 x
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
    5 v, W2 Z% j" `; Z* h
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);
    - d" z! n# q8 m! S- w9 m1 x
  18.                
    ! O: G7 B7 j/ a9 o
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);
    0 V: u! T% g8 g1 d' }4 W' J1 E( o
  20.     MC_StartMotor1();; N# f( ^$ p# c8 Q1 ?# f
  21.     HAL_Delay(10000);" y4 i! d+ Y6 o6 y, r" b
  22.     MC_StopMotor1();
    + s7 \* _( p3 L6 ^7 m: A
  23.     HAL_Delay(3000);
    , H& @; |! I3 Z* w/ n' r% A6 z
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);
    9 g! }# O" N  U1 A/ `
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);) t- ]8 X0 m2 y" L. }. `, k& |
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);
    & `3 T# N& }' d3 o! K6 d1 E; N+ ~
  27.     MC_StartMotor1();" y4 a) ]4 |& N  }% ^0 m, f
  28.     HAL_Delay(10000);- T; w7 N/ ?1 t7 U6 \: k% p% E
  29.     MC_StopMotor1();2 T' O6 X/ s7 U" b1 _+ o2 P) O
  30.     HAL_Delay(3000);                 
    + h( A  l4 v. M: B( B0 q8 D8 q
  31.   }: p9 u" k7 |4 m
  32.   /* USER CODE END 3 */8 u$ }" L5 t5 n  G' L" V0 R

  33. 0 ]6 ^4 }' `6 a
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
6 p: h: s; L1 u3 J3 k, a
         速度波形查看:' ~7 }) r! y  J1 F: q0 m
6.png ( F; c) D% j/ B9 }7 T, {  N

" H! }! b6 d/ k, L
( Y: ~! w% F1 O" r1 ~0 h. k6 v( x
赞 收藏 1 评论2 发布时间:2018-9-2 17:08

举报

2个回答
liujunfy527 回答时间:2018-10-26 21:22:19
谢谢分享
唐英tcy 回答时间:2019-7-1 15:03:09
谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版