目标:用步进电机驱动器驱动42步进电机,并精确控制脉冲个数。
步进电机器如下图:
第一步 STM32CubeMX配置TIM2_CH1,并生成代码。TIM2的NVIC也要打开,如图:
第二步 :在生成的代码合适位置打开或关闭PWM,修改脉冲频率
HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_1);//开启pwmHAL_TIM_PWM_Stop_IT(&htim2, TIM_CHANNEL_1);//关闭pwmTIM2->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;}}}