查看: 1136|回复: 0
打印 上一主题 下一主题

STM32驱动控制步进电机

[复制链接]
跳转到指定楼层
沙发
发表于 2015-9-28 00:11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32驱动控制步进电机,使用STM32驱动并控制步进电机的方法。STM32发送控制信号给驱动器,然后驱动器来控制步进电机转速和方向。
驱动器:控制一个步进电机转动,使用一路PWM信号,和一路方向信号,根据pwm信号的频率控制步进电机的转速,方向信号控制步进转动的方向。
  • void SteppingMotor_Config(void)
  • {
  •     GPIO_InitTypeDef GPIO_InitStructure;
  •     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  •     TIM_OCInitTypeDef  TIM_OCInitStructure;
  •     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  •     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  •     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                 //TIM2的1通道输出pwm波形控制电机,对应PA0口
  •     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  •     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  •     GPIO_Init(GPIOA,&GPIO_InitStructure);
  •     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2; //步进电机正反转和使能控制口
  •     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  •     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  •     GPIO_Init(GPIOA,&GPIO_InitStructure);
  •     //定义PWM频率
  •     TIM_TimeBaseStructure.TIM_Prescaler =719;                    //预分频值
  •     TIM_TimeBaseStructure.TIM_Period =99;                   //重装值,这里输出的pwm频率为1KHZ
  •     TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
  •     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  •     TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);          //时基单元配置
  •     //设定占空比
  •     TIM_OCStructInit(& TIM_OCInitStructure);
  •     TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  •     TIM_OCInitStructure.TIM_Pulse =50;                      //%50的占空比
  •     TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  •     TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  •     TIM_OC1Init(TIM2, &TIM_OCInitStructure);
  •     TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);
  •     TIM_ARRPreloadConfig(TIM2,ENABLE);
  •     TIM_Cmd(TIM2, ENABLE);
  •     TIM_CtrlPWMOutputs(TIM2, ENABLE);
  • }


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表