Использование ШИМ для регулировки TIM ARR для привода шагового двигателя на STM32F103C8T6

#stm32

Вопрос:

Мой вопрос заключается в использовании ШИМ stm32 для привода шагового двигателя, я хочу настроить параметр TIM2-gt;ARR=arr1 для регулировки скорости шага, но если я установлю этот параметр, он не будет работать в режиме прерывания.

 void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {   if (htim-gt;Instance == TIM2)  {  //判断电机1步数中断  if (motor1_pwm_count lt; Global_RunStep) //Motor1_Step是全局变量  {  if(accelerate_len gt; 0)  {   int result = PowerTLine[accelerate_len]; //PowerTLine数组为Float浮点型,用int 整形一下传入arr不会卡死 // TIM2-gt;ARR=result; // TIM2-gt;CCR1=result / 2;  accelerate_len--;  printf("n acc is : %d rn",result);   }     motor1_pwm_count  ; // 步进电机行走步数  }  else  {  HAL_TIM_PWM_Stop_IT(amp;htim2, TIM_CHANNEL_1);   motor1_pwm_count = 0;  accelerate_len = 200; // end_accelerate_len = 0;  Global_RunStep= 0 ;   //步进电机ENV 使能设置 关闭  // MOTOR_ENV_LOW;  }  } }  

Комментарии:

1. Пожалуйста, подробно опишите свою проблему. Что вы подразумеваете под «это не работает» ? Тебя больше не прерывают ? И вы получаете его, когда не устанавливаете регистр ARR ?

2. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.