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

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

[复制链接]
freeelectron 发布时间:2018-9-2 17:08
本帖最后由 freeelectron 于 2018-9-2 17:07 编辑 ( P% ~# h7 `8 T' o% U

/ f  S6 ^9 d1 F
        通过任务2:主要学习,取得MCT句柄,如何找到相关操作函数,调用控制函数以及参数设定。
2.png
) Y# d# f3 D3 P* v; b+ M8 O) w
        代码添加:
        主函数,添加头文件:- D6 [; w. ~0 I- r$ f- l3 }
  1. /* USER CODE BEGIN Includes */' a9 E( e, |" E8 D: c, K$ L
  2. #include "mc_tuning.h"
    8 T0 H7 g6 i$ _1 R! ^
  3. #include "mc_tasks.h"
    ; }5 X) v3 b! `! p& _* K
  4.   ?1 @0 k/ M* D
  5. /* USER CODE END Includes */
复制代码
         定义变量:
  1.   /* USER CODE BEGIN 1 */" N! Q: V! N) K& u  |, {
  2.   static int16_t Speed_Kp,Speed_Ki;3 G$ S" g# ~' F6 A
  3.   MCT_Handle_t* pMctHdl;% S( }* j8 d, Q* I: _2 P5 L
  4.   /* USER CODE END 1 */
复制代码
        控制程序添加:
  1.   while (1)5 V6 P5 `9 ]3 o5 c
  2.   {
    3 p  s" ]1 Z: A1 r% X4 G: N
  3. ( a1 J# e6 u, i0 {6 W
  4.   /* USER CODE END WHILE */6 v) k7 |; q: F" G6 Y" A$ t
  5. ) ~- z% I$ Z0 K
  6.   /* USER CODE BEGIN 3 */
    + N/ ^3 i/ Q9 r/ C6 E$ @+ ~/ J
  7.           MC_ProgramSpeedRampMotor1(3000/6,1000);( g; V; }) L7 I5 @3 @. m* w! R$ y
  8.                 MC_StartMotor1();: a0 v" P+ }* {7 V: k8 u, K- r
  9.                 HAL_Delay(10000);
    - G% i2 B+ P+ z
  10.                 MC_StopMotor1();7 c3 L, {; ~/ S, g4 ~& P" I
  11.     HAL_Delay(3000);
    8 I+ m) M& m3 J3 J
  12.                
    ; N! G0 s6 D  A' R: b2 t
  13.     pMctHdl = GetMCT(M1);
    8 f$ T7 i8 w- v( T- G* T
  14.     Speed_Kp = PID_GetKP(pMctHdl->pPIDSpeed);2 C# S! k9 Q1 |" G
  15.     Speed_Ki = PID_GetKI(pMctHdl->pPIDSpeed);
    7 L0 e. x3 c! T" P! i7 J! v4 V
  16.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);9 \$ w2 n, C" e" Q3 P
  17.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);
    1 t7 k& x/ F3 V: q
  18.                 ) p! c* d: W7 S( o/ F/ g
  19.           MC_ProgramSpeedRampMotor1(3000/6,1000);# I  e- f1 \$ E/ E8 ]7 H
  20.     MC_StartMotor1();
    , F1 b# i$ R, t: H% x$ f  B
  21.     HAL_Delay(10000);  C4 c7 f7 d6 j: ~
  22.     MC_StopMotor1();0 A. }7 Y% |# ?
  23.     HAL_Delay(3000);1 r! f2 ^* M3 Y$ X" h% m7 c2 Z% P
  24.     PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp/2);
    1 J1 o% u9 n" K7 S* ?
  25.     PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki/2);  t9 Y1 O* i* i0 @- z2 |" O
  26.     MC_ProgramSpeedRampMotor1(3000/6,1000);! z  n5 F. C* p8 S( U! y
  27.     MC_StartMotor1();
    1 K& {- z" M& G! u4 q0 V; G1 Q7 W
  28.     HAL_Delay(10000);
    $ W( T9 S3 I; ^! M9 C
  29.     MC_StopMotor1();
    : ~# S7 e  X% p6 W: r
  30.     HAL_Delay(3000);                 
    : V' Q( j3 D; j; j9 X% {7 m. U# [
  31.   }1 S7 B) U* j* L
  32.   /* USER CODE END 3 */" Q2 ~4 I1 a; J0 q

  33. 1 |5 ?( v- t4 K+ Z9 T5 l
  34. }
复制代码
         在mc_tasks.h里面声明:
  1. MCT_Handle_t* GetMCT(uint8_t bMotor);
复制代码
2 |. P% ?9 Q4 _  _9 l- m  n
         速度波形查看:9 F' j$ W) s- ?4 ]1 _" \
6.png
2 j. _$ n) N8 x! d+ o; c$ Z, U

. }8 d2 Q. \5 `2 R3 [7 b1 I( e
+ [, h/ j3 T* n) v; D; N! c
收藏 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 手机版