stm32控制步进电机

本文使用DM542c驱动器驱动。

使用前注意根据实际情况调节拨码开关。

本文不会提到GPIO使能,请自行使能。

一、PWM操作驱动器使步进电机一直转

  1. 使能定时器时钟,并配置基本参数。下图以TIM3为例。
  2. 配置输出比较PWM1模式。下图ARR+1=100,故CCR值除以100即占空比。占空比与转速有关。
  3. 使能时钟   TIM_Cmd(TIM3, ENABLE);

注:

  • 计数器每溢出一次,发出一次脉冲,产生一次TRGO(触发输出信号)。
  • PWM频率不宜过快,否则可能使步进电机不转,并伴有鸣叫。
  • CCR可随时更改,用以调速。
  • 开启PWM时,必须同时开启AFIO时钟!!必须配置对应引脚为复用输出!!

stm32控制步进电机_第1张图片

二、转一定角度

使用定时器主从模式,从定时器用于计算脉冲数(脉冲即指PWM波)。脉冲数与旋转角度直接相关,查看驱动器拨码开关设置可知脉冲与角度关系。

  1. 使能从定时器时钟,并配置基本参数。Period(即ARR)+1为期望脉冲数,达到期望数后触发中断。本例从定时器为TIM4.
  2. 使能中断并中断优先级分组。
  3. 设置主定时器并使能,使用更新事件作为触发输出。
  4. 设置从定时器,参数TIM_SlaveMode_External1。
  5. 设置输入触发源,参数TIM_TS_ITR2需要查表。(可以查看本专栏中“stm32定时器”篇“主从模式”)
  6. 设置从定时器触发为外部时钟模式。
  7. 使能从定时器时钟。
  8. 写中断服务函数,关闭定时器以停转步进电机。

stm32控制步进电机_第2张图片

stm32控制步进电机_第3张图片

你可能感兴趣的:(stm32,stm32,单片机)