zoukankan      html  css  js  c++  java
  • 步进电机驱动

    /*stepmotor.h*/
    #ifndef _STEPMOTOR_H
    #define _STEPMOTOR_H
    #include "sys.h"
    #include "delay.h"
    #define AA PDout(8) 
    #define aa PDout(9)
    #define BB PDout(10) 
    #define bb PDout(11)
    //单4
    #define ON_1 {AA=1;aa=0;BB=0;bb=0;} 
    #define ON_2 {AA=0;aa=0;BB=0;bb=1;}
    #define ON_3 {AA=0;aa=1;BB=0;bb=0;}
    #define ON_4 {AA=0;aa=0;BB=1;bb=0;}
    //双4
    #define ON_D1 {AA=0;aa=1;BB=1;bb=0;}
    #define ON_D2 {AA=1;aa=0;BB=1;bb=0;}
    #define ON_D3 {AA=1;aa=0;BB=0;bb=1;}
    #define ON_D4 {AA=0;aa=1;BB=0;bb=1;}
    //单双8拍
    #define ON_DD1 {AA=0;aa=1;BB=0;bb=0;}
    #define ON_DD2 {AA=0;aa=1;BB=1;bb=0;}
    #define ON_DD3 {AA=0;aa=0;BB=1;bb=0;}
    #define ON_DD4 {AA=1;aa=0;BB=1;bb=0;}
    #define ON_DD5 {AA=1;aa=0;BB=0;bb=0;}
    #define ON_DD6 {AA=1;aa=0;BB=0;bb=1;}
    #define ON_DD7 {AA=0;aa=0;BB=0;bb=1;}
    #define ON_DD8 {AA=0;aa=1;BB=0;bb=1;}
    
    #define OFF_ALL {AA=0;aa=0;BB=0;bb=0;}
    extern void Motor_GPIO_Init(void); extern void Motor_4(u16 time); extern void Motor_D4(u16 time); extern void Motor_8(u16 time); extern void Motor_8_back(u16 time); //反转 #endif
    /*stepmotor.c*/
    #include "stepmotor.h"
    void Motor_GPIO_Init(void)
    {
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);     
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;                 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         
        GPIO_Init(GPIOD, &GPIO_InitStructure);                     
        //GPIO_SetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);        
    }
    void Motor_4(u16 time)
    {
        ON_1;
        delay_ms(time);
        ON_2;
        delay_ms(time);
        ON_3;
        delay_ms(time);
        ON_4;
        delay_ms(time);
    }
    void Motor_D4(u16 time)
    {
        ON_D1;
        delay_ms(time);
        ON_D2;
        delay_ms(time);
        ON_D3;
        delay_ms(time);
        ON_D4;
        delay_ms(time);
    }
    void Motor_8(u16 time)  //执行一次转7.2度
    {//循环50次转360度,8拍每拍0.9度 
        ON_DD1;
        delay_us(time);
        ON_DD2;
        delay_us(time);
        ON_DD3;
        delay_us(time);
        ON_DD4;
        delay_us(time);
        ON_DD5;
        delay_us(time);
        ON_DD6;
        delay_us(time);
        ON_DD7;
        delay_us(time);
        ON_DD8;
        delay_us(time);
    }
    void Motor_8_back(u16 time) //反转
    {
        ON_DD8;
        delay_us(time);
        ON_DD7;
        delay_us(time);
        ON_DD6;
        delay_us(time);
        ON_DD5;
        delay_us(time);
        ON_DD4;
        delay_us(time);
        ON_DD3;
        delay_us(time);
        ON_DD2;
        delay_us(time);
        ON_DD1;
        delay_us(time);
    }
  • 相关阅读:
    2020春,不一样的学期不一样的软工实践
    尘埃落下,我抓住透明的阳光,温暖留在掌心
    敏捷软工
    《构建之法》& CI/CD调研
    2021年-软件工程-热身阅读作业
    从学生到科技工作者
    希望我能帮到你:给同学们软件开发的建议
    CC2020 分享信息
    【计算机教育】看《计算机科学导论》,发展计算思维能力
    【计算机教育】创新工程实践课程的反馈
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/4304649.html
Copyright © 2011-2022 走看看