硬件
f4系列单片机,驱动器,12v电源
配置
记得写入回调函数
代码
原理很简单,就是步进电机每收到一个脉冲,就会旋转多少角度,所以只需要让CCR(比较值)一直增大,然后定时器计数值到达了比较值,反转电平,再增加比较值。
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
__IO uint16_t count;
count = __HAL_TIM_GET_COUNTER(&htim1);
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,count+Toggle_Pulse);
}
主函数先打开定时器的相关通道
HAL_TIM_Base_Start(&htim1);
HAL_TIM_OC_Start_IT(&htim1,TIM_CHANNEL_1);//启动比较输出使能中
计算
比如我代码里Toggle_Pulse = 500;
那么,周期=1000微妙,频率就是1000.