目标:用步进电机驱动器驱动42步进电机,并精确控制脉冲个数。
步进电机器如下图:
第一步 STM32CubeMX配置TIM2_CH1,并生成代码。TIM2的NVIC也要打开,如图:
第二步 :在生成的代码合适位置打开或关闭PWM,修改脉冲频率
HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_1); //开启pwm
HAL_TIM_PWM_Stop_IT(&htim2, TIM_CHANNEL_1); //关闭pwm
TIM2->PSC=71; //72分频
第三步 :精确控制脉冲个数
重新实现 HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)函数
比如,100个脉冲就停止,如下代码:
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim2)
{
if(count <100)
{
count++;
}
else
{
HAL_TIM_PWM_Stop_IT(&htim2, TIM_CHANNEL_1);
count = 0;
}
}
}