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

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

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑 3 z+ Y  H. {" d; @

* ~0 a% ~* t, _4 t# X
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png 2 t& P( B+ d4 e) z0 Q9 E# a# s, X
        代码添加:
        主函数,添加头文件:
7 n& r2 |$ p& m# {5 w8 Z
  1. /* USER CODE BEGIN Includes */
    , r- f& U! a$ i
  2. #include "mc_tuning.h"4 i1 H9 t, F1 K* B
  3. #include "mc_tasks.h"
    ! Y% w2 \- z- Y( |
  4. 1 A. A/ |1 j" S9 S0 i) W% B
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */
    7 P  Q/ S$ E* N
  2.   static int16_t Speed_Kp,Speed_Ki;
    . t6 `/ W1 w/ K! H. S! E( Y
  3.   MCT_Handle_t* pMctHdl;0 v2 I* ]5 v/ ?5 I
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)
    6 s' C7 s) L: x7 L- W! m2 W2 ^
  2.   {" C" ]; h- g( Q$ Y( ]6 {3 J" L

  3. ( I; }2 K! h& o
  4.   /* USER CODE END WHILE */
    9 z$ D9 y, z& {/ `4 _# ?* y

  5. , e. D" j8 c! g2 \, l$ e+ D% S
  6.   /* USER CODE BEGIN 3 */+ P2 ]2 o9 d9 O2 e1 F+ L
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);
      ?$ ^9 E- V. i  T# a& M. O
  8.                 MC_StartMotor1();( A! c$ H7 h% m6 w
  9.                 HAL_Delay(10000);+ V( G  C' s# y$ F: C, H0 t: P/ I
  10.                 MC_StopMotor1();8 Y$ v4 n' M! K# p- d
  11.     HAL_Delay(3000);* M( b" q5 F% E) c0 Y6 X+ L$ W  u, R
  12.                
    ! g1 b+ m5 L! X, y& \: Q8 _7 I
  13.     pMctHdl = GetMCT(M1);0 B+ P4 `+ |8 l. v: A7 k6 s$ t
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);, x! b( M+ R3 l  l8 E
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);4 {6 V$ s  T0 _. g0 n  e
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
    2 S0 t( w  Z) a8 K
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);2 J7 E4 N2 u  ^! T$ P5 Y0 m  k% j
  18.                
    7 ], x; t5 P. H5 K( ~
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);( d# H- `% |: G0 E7 P% P
  20.     MC_StartMotor1();; V, Q4 B! B  b8 d
  21.     HAL_Delay(10000);) ]$ `+ \, }; R* y  x) m
  22.     MC_StopMotor1();! E, Y; P+ c  h
  23.     HAL_Delay(3000);
    , A. Q- v3 m: T8 z2 l
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);( J3 ?" M  ~4 x8 }$ {  z6 E5 y3 j
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);
    7 `: @  X7 f6 [
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);
    ' K- T9 ?! T; }# b# O
  27.     MC_StartMotor1();
    2 E9 z- ?/ n% w
  28.     HAL_Delay(10000);
    1 |" I' l3 d1 y) U
  29.     MC_StopMotor1();1 ]# n9 s; D; O" J& N  V2 g* Y
  30.     HAL_Delay(3000);                 + i7 \2 W) g8 S) E  n7 H
  31.   }. c1 Y$ u' }+ U6 k5 j& I8 @
  32.   /* USER CODE END 3 */) F5 `- ^: Y, z$ X

  33. 0 }% ~- ^. F: T) ?$ y8 r6 A
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码

2 I6 ?5 h- ~7 r9 w
         速度波形查看:# h% o) |: V4 o3 f- e+ ]: N
6.png 4 l. P+ p+ g4 F2 I8 v
8 B- U5 z* q% M" J8 J
; h  v1 g8 g* o8 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 手机版