|
实验3:基于MC SDK5.0 PI组件接口函数做在线参数修改。+ w4 [- u* T/ z: s1 D 1、实验内容:
2、程序修改; 在生成的源码上修改,内容如下:! T0 R; T3 n& W) P; ]/ C& K main.c内容修改: 程序的顶部增加mc_extended_api.h头文件。4 o; S: N1 [( l! n /* USER CODE BEGIN Includes */ #include "mc_extended_api.h"/ e* ]# Z( Q! H0 g8 s /* USER CODE END Includes */ 1 `! O' ^6 q3 k" E1 q6 {- S /* USER CODE BEGIN PV */ /* 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; /* USER CODE END PV */: A @, u( ~& k2 I7 R0 L int main(void) { /* USER CODE BEGIN 1 */5 r# M& S0 a. U4 }7 C /* USER CODE END 1 */ 6 G* f' z+ n! r. _8 C9 { /* MCU Configuration----------------------------------------------------------*/ 9 ~# Z/ T8 _. ?$ Q /* Reset of all peripherals, Initializes the Flash interface and the Systick. */# J" f8 e5 W7 k( W HAL_Init(); /* 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(); /* USER CODE BEGIN SysInit */ 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(); 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(); MX_MotorControl_Init(); /* Initialize interrupts */ MX_NVIC_Init(); J1 \$ @* F9 r( R /* USER CODE BEGIN 2 */ 4 m, X! g/ S( Z, i pMctHdl = GetMCT(M1);2 |$ n. [% H& I8 {9 { Speed_Kp= PID_GetKP(pMctHdl->pPIDSpeed); Speed_Ki= PID_GetKI(pMctHdl->pPIDSpeed);" g" U6 o$ _( L PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2); PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);, m+ y2 _" W3 ` /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */2 ~0 i+ I' t4 E# W" c while (1) {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 } /* USER CODE END 3 */& d8 m5 S5 z8 q/ ~8 ?' ?* w }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); PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*1); 5 C5 S( d" G" z) ]- D1 S
3.2、2倍PID数据- x9 s; o6 ^8 s! W. ^ PID_SetKP(pMctHdl->pPIDSpeed,Speed_Kp*2); PID_SetKI(pMctHdl->pPIDSpeed,Speed_Ki*2);: \, z+ h8 Y8 Q* Q
/ L4 O& P- l) G9 q& ^ 3.3、0.5倍PID数据 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 _
( a9 \: q7 g5 ?( I0 x6 D , S( F9 F$ g! F1 w- [1 S |
微信公众号
手机版
F302的板子