资源简介

实际项目已验证OK,使用者根据实际情况调试dSPIN_Regs_Struct_Reset这个函数参数即可,注释很清晰,如果觉得有用,麻烦点个赞,谢谢

资源截图

代码片段和文件信息

#include “main.h“

u8 u_MotorCsNum = 0;

void MotorNumEnable(u8 Num)
{// 使能Num电机工作
    u_MotorCsNum = Num;
}

void MotorCSEnable(Bool State)
{// 马达控制片选
    if(u_MotorCsNum==MOTOR1_NUM)
    {
        if(State==1) MOTOR1_CS = 0;
        else MOTOR1_CS = 1;  
    }
    else if(u_MotorCsNum==MOTOR2_NUM)
    {
        if(State==1) MOTOR2_CS = 0;
        else MOTOR2_CS = 1;  
    }
}

/********************************************************************
  * 函数说明:4号步进电机测忙函数
  * 输    入:无
  * 返    回:繁忙返回1,空闲返回0无
  ******************************************************************/
Bool MotorWaitBusy(u8 Num)
{
    if(Num==MOTOR1_NUM)
    {
        if(MOTOR1_BUSY==0) return 1;
        else return 0;  
    }
    else if(Num==MOTOR2_NUM)
    {
        if(MOTOR2_BUSY==0) return 1;
        else return 0;  
    }
    return 0;
}

Bool DoMotorGetIRState(u8 Num)
{// 获取光耦状态
    if(Num==MOTOR1_NUM)
    {
        if(X_SENSE==0) return 0;
        else return 1;  
    }
    else if(Num==MOTOR2_NUM)
    {
        if(Z_SENSE==0) return 0;
        else return 1;  
    }    
    return 0;
}

void ConfigMorotParam(void)
{// 配置马达芯片寄存器
    u8 i;
    
    for(i=0; i    {
        dSPIN_Reset_Device(i);      // 复位芯片
        dSPIN_Get_Status(i);
        while(dSPIN_Busy_HW(i));
        dSPIN_Regs_Struct_Reset(i);
        dSPIN_Reset_Pos(i);
    }
}

void Init_Motor(void)
{//马达引脚配置
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO ENABLE);//使能端口时钟

    // 电机初始化   BUSY FLAG 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9;           
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   
    GPIO_Init(GPIOD &GPIO_InitStructure);

    // 电机初始化   CS       
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
    GPIO_InitStructure.GPIO_Speed =  GPIO_Speed_50MHz;   
    GPIO_Init(GPIOA &GPIO_InitStructure);
    MOTOR1_CS = 1;
    MOTOR2_CS = 1;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2218  2018-01-19 09:12  L6470PD\bsp_motor.c
     文件         620  2018-01-09 20:34  L6470PD\bsp_motor.h
     目录           0  2018-12-25 16:05  L6470PD\dspin\
     文件       21494  2018-02-05 10:54  L6470PD\dspin\dspin.c
     文件       13622  2018-01-19 09:10  L6470PD\dspin\dspin.h
     目录           0  2018-12-25 16:06  L6470PD\

评论

共有 条评论