舵机驱动-GPIO MG995 STM32

Posted 不积跬步*无以至千里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了舵机驱动-GPIO MG995 STM32相关的知识,希望对你有一定的参考价值。

应为TIM都用光了,只能使用GPIO,使用GPIO 好处就是很好移植。程序如下:

省略GPIO等初始化。PIN设置为

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;              
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

#ifndef _MOTOR_STEP_H_
#define _MOTOR_STEP_H_
#define MIN_DEGREE (0)
#define MAX_DEGREE (90)

#include "stm32f10x.h"

s8 MotorMoveDegree(u8 degree);

#endif
#include "motor_step.h"
#include "ioctrl.h"
#include "base_conf.h"
#define US_NUM (445)
static void Delay_100us(u16 us)//only for sysclock is 36M, Measured by OscillOscope,not a accurate delay
{
    u16 i=US_NUM;
    while(us--)
    {
        while(i--)
        __NOP();
        i=US_NUM;
    }
}

s8 MotorMoveDegree(u8 degree)
{
    u16 ON_us,OFF_us;
      u8 i=15;
        if(degree>MAX_DEGREE)return -1;
      ON_us = (u16)(25*degree/MAX_DEGREE);
      OFF_us = 200-ON_us;
      while(i--)
        {
            MotorStepSignal_ON();
            Delay_100us(ON_us);
            MotorStepSignal_OFF();
            Delay_100us(OFF_us);
        }
      return 0;    
}
void main()
{
 //system_init();
     while(1)
    {
           MotorMoveDegree(90);
        Delay_ms(100);
        MotorMoveDegree(60);
        Delay_ms(100);

    }
}

 

以上是关于舵机驱动-GPIO MG995 STM32的主要内容,如果未能解决你的问题,请参考以下文章

STM32CubeMX(09)MG90S舵机驱动实验

STM32CubeMX(09)MG90S舵机驱动实验

舵机&数据处理&stm32内存之堆栈溢出(遇到的问题)

树莓派控制mg995舵机如何控制

树莓派3b+ 舵机驱动开发

STM32CubeMX-定时器产生PWM驱动舵机