新手入门
- 积分
- 17
- 金钱
- 17
- 注册时间
- 2022-7-13
- 在线时间
- 2 小时
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) /* HAL_TIM_Base_Start_IT(这个是使能定时器,并开启中断) */
{
if(htim->Instance==TIM8) /* 看是不是定时器8 */
{
g_stepper.pulse_count--; /* 每一个完整的脉冲就-- */
if(g_stepper.pulse_count<=0) /* 当脉冲数等于0的时候 代表需要发送的脉冲个数已完成,停止定时器输出 */
{
printf("累计旋转的角度:%d\r\n",(int)(g_stepper.add_pulse_count*MAX_STEP_ANGLE)); /* 打印累计转动了多少角度 */
stepper_stop(STEPPER_MOTOR_1); /* 停止接口一输出 */
g_run_flag = 0; //清除
}
}
}
这是正点原子的中断回调代码,如果是输入100个脉冲是进行100次中断,那这段程序每一个脉冲都要停止一次步进电机stepper_stop(STEPPER_MOTOR_1); ,如果一次性执行一百次中断,g_stepper.pulse_count--是不是应该用循环,这段代码不是很懂,希望有大佬赐教
|
|