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

【STM32电机培训】- 基于MC SDK5.0 PI组件接口函数做在线参数...

[复制链接]
TLLED 发布时间:2018-8-31 22:53
     实验3:基于MC SDK5.0 PI组件接口函数做在线参数修改。+ w4 [- u* T/ z: s1 D
   1、实验内容:
- X" a& u* ]  A' j$ ^$ n 01.png
7 ~  \  T6 P& |0 S 02.png
, w- c) B& o- A. ]) |3 e    2、程序修改;
4 F3 s1 f9 _2 q% i    在生成的源码上修改,内容如下:! T0 R; T3 n& W) P; ]/ C& K
    main.c内容修改:
1 R6 w6 \3 P" c2 U' p程序的顶部增加mc_extended_api.h头文件。4 o; S: N1 [( l! n
/* USER CODE BEGIN Includes */
8 m! C$ r' {4 J, B# a#include "mc_extended_api.h"/ e* ]# Z( Q! H0 g8 s
/* USER CODE END Includes */
. Q4 e6 o4 H; X5 E) ~+ a# x1 `! O' ^6 q3 k" E1 q6 {- S

/ r9 t0 S1 A9 u/* USER CODE BEGIN PV */
% h: x: d& N: s$ q7 W8 E3 D/* Private variables ---------------------------------------------------------*/  a4 G0 U- [( [$ X
MCT_Handle_t *pMctHdl;                       //定义的变量( {5 I/ I7 H8 L% K* D) c) t& @/ B% m
static int16_t Speed_Kp,Speed_Ki;
9 Y& _* a( h5 N# f5 ?/* USER CODE END PV */: A  @, u( ~& k2 I7 R0 L

3 s: r3 v% o# _9 o1 O: Wint main(void)
" C: A) b  a9 a* f{
3 h$ q- Z& ^! y$ {  /* USER CODE BEGIN 1 */5 r# M& S0 a. U4 }7 C
  /* USER CODE END 1 */
" v; C9 @6 Y$ n$ n& l6 G* f' z+ n! r. _8 C9 {
  /* MCU Configuration----------------------------------------------------------*/
! y' `% ]5 t! a+ h9 ~# Z/ T8 _. ?$ Q
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */# J" f8 e5 W7 k( W
  HAL_Init();
" o5 C3 @/ z5 D7 J. ]7 P
/ J" [& \& }% N$ _2 v! Z  /* USER CODE BEGIN Init */6 l* _: ?: P) y7 a% M9 s; Q
8 y3 {% P$ x: ~9 d( z
  /* USER CODE END Init */2 _+ p/ e3 b" Q5 j1 [) N/ S" l
; [; u% A8 R& c" b4 y
  /* Configure the system clock */1 o2 ^/ e( b6 [( N" v* t6 p
  SystemClock_Config();
( B, F9 h2 F9 [3 }
/ R+ {" o$ M4 o  a$ o  /* USER CODE BEGIN SysInit */
' T  K# M1 s6 h, f  b+ |1 i# J7 P" `. K  t8 e
  /* USER CODE END SysInit */- E2 {  M- p" ^. Q5 {
; |% S" n7 _  b5 H0 V- K
  /* Initialize all configured peripherals */1 @, C) j, \- e- Q7 q# g
  MX_GPIO_Init();+ T5 z% ~! N4 ^& }
  MX_ADC1_Init();
4 x, @) R6 Y( {2 ]$ e3 _/ P  MX_DAC_Init();' u8 O/ J  {) v( |6 s. v! Q- {  ^
  MX_TIM1_Init();6 Z& H! N5 Y) c& T
  MX_USART2_UART_Init();
6 v4 x8 @3 S8 N1 z3 H  MX_MotorControl_Init();
) d, C: y/ k, k" [5 @$ r2 x  u
7 D8 ?' U$ f3 M/ g/ M  /* Initialize interrupts */
8 Y% S7 P9 T' H* @, H  MX_NVIC_Init();  J1 \$ @* F9 r( R
  /* USER CODE BEGIN 2 */
+ R; \- O! r3 [" H# E1 ]) M0 |4 m, X! g/ S( Z, i
   pMctHdl = GetMCT(M1);2 |$ n. [% H& I8 {9 {
    Speed_Kp= PID_GetKP(pMctHdl->pPIDSpeed);
( ~( f8 C% R& J0 Q& R0 S  m3 [    Speed_Ki= PID_GetKI(pMctHdl->pPIDSpeed);" g" U6 o$ _( L
    PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
1 `  i0 \/ _' g    PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);, m+ y2 _" W3 `

# M& Q; p! e! I  v4 D  /* USER CODE END 2 */
) g& ~3 Z1 G4 k7 \' Y
# i; ^" q% N. W) ~" q+ H  /* Infinite loop */
# _3 o3 ]3 D) P6 ?0 V  /* USER CODE BEGIN WHILE */2 ~0 i+ I' t4 E# W" c
  while (1)
+ c5 b% [3 t& G  {5 z. Q7 t% _5 l, h( ~' I. ?. a' B- p
! e9 l, I! F5 O2 V' @8 K
  /* USER CODE END WHILE */  `% A8 f  z" f- D3 W& V0 Q
# b" ^* v2 G( d9 K$ B2 g+ J# m
  /* USER CODE BEGIN 3 */8 _1 G9 q6 J( Y. W

, t% M5 X0 P' [  }
6 H' A/ o6 x6 U6 j  /* USER CODE END 3 */& d8 m5 S5 z8 q/ ~8 ?' ?* w

5 f9 E4 q4 M) y/ ~}5 z9 B. u0 ^) W/ O
2 Q+ I2 H; M/ K% \  i  w
' u6 x7 U6 t, g2 z# l3 w1 s! A
3、程序执行的结果:. G7 K* F: f# ~8 E; m7 I7 |
3.1、原始PID数据7 Z, C* H- [$ `3 P
    PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*1);
# T! g' q. @5 _  u
    PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*1);
; x: w& I* }: J7 S$ S5 C5 S( d" G" z) ]- D1 S
2yssj.png
9 b& u3 E4 [* J$ V0 o2 E9 ]7 ?   
- C0 ~  z. ]9 e% d3.2、2倍PID数据- x9 s; o6 ^8 s! W. ^
    PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2);
2 t0 i# R8 G* x3 v2 V4 N9 u% R( g/ T
    PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);: \, z+ h8 Y8 Q* Q

4 c9 F. |$ T4 i4 s5 z9 N 1.png 5 ^0 k0 h( S1 X7 K. u) S2 L
/ L4 O& P- l) G9 q& ^
3.3、0.5倍PID数据
+ [1 f8 G' v3 k- ^: f, C5 M    PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*0.5);6 M6 W9 }1 U1 m$ k
    PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*0.5);: \* e/ M* x+ @. X& q- n' J8 _
305.png 8 e9 s  O2 W- h+ a& D; v/ W9 }( Q

4 b4 F. X9 Y+ G9 T) j% x( a9 \: q7 g5 ?( I0 x6 D

* W: x6 k/ w+ K2 z
9 t# [. P9 ^8 K  P# D4 i
8 M5 U' w. R  e
; ?  r$ `; Z" C8 H2 v
/ a% ]. h- y! Q- h# F2 ~4 d
% Q3 ~( }. S1 S! M. U/ e3 }
8 ?- `( p8 A7 O4 v9 C, Y5 c2 ~, S( F9 F$ g! F1 w- [1 S
  
, l. ~6 P! k* C2 r( f
赞 收藏 评论2 发布时间:2018-8-31 22:53

举报

2个回答
wawjik2008 回答时间:2018-8-31 23:36:13
楼主用的302的板吗
TLLED 回答时间:2018-8-31 23:38:23
wawjik2008 发表于 2018-8-31 23:36
$ s7 Y; _& O! h# n楼主用的302的板吗

) Z. K' ^0 \4 I: w& t8 YF302的板子
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版