MW22-02A/BSP/Driver/l6235d/l6235d.c

104 lines
2.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "l6235d.h"
//l6235d初始化
#ifdef L6235D
void l6235d_init()
{
//水平电机PD11-EN,PD12-F/R,PD10-BRK
gpio_mode_set(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_12);
gpio_mode_set(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_11);//PD11上拉电阻
gpio_mode_set(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, GPIO_PIN_10);//PD10下拉电阻
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_10| GPIO_PIN_11| GPIO_PIN_12);
//水平hallPD13-H1,PD14-H2,PD15-H3
gpio_mode_set(GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_13| GPIO_PIN_14| GPIO_PIN_15);
L6235D_HORI_BRAKE_STOP;
L6235D_HORI_EN_DISABLE;
//垂直电机PA8-EN,PA11-F/R,PC9-BRK
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_11);
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_8);//PA8上拉电阻
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_8| GPIO_PIN_11);
gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, GPIO_PIN_9);//PC9下拉电阻
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_9);
//垂直hallPC6-H1,PC7-H2,PC8-H3
gpio_mode_set(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_6| GPIO_PIN_7| GPIO_PIN_8);
L6235D_VERT_BRAKE_STOP;
L6235D_VERT_EN_DISABLE;
}
//设定转向
char l6235d_hori_set_direction(char dir)
{
if(dir == L6235D_MOTOR_DIR_FWD)
{
L6235D_HORI_FWD;
return L6235D_MOTOR_DIR_FWD;
}
if(dir == L6235D_MOTOR_DIR_REV)
{
L6235D_HORI_REV;
return L6235D_MOTOR_DIR_REV;
}
return -1;
}
char l6235d_vert_set_direction(char dir)
{
if(dir == L6235D_MOTOR_DIR_FWD)
{
L6235D_VERT_FWD;
return L6235D_MOTOR_DIR_FWD;
}
if(dir == L6235D_MOTOR_DIR_REV)
{
L6235D_VERT_REV;
return L6235D_MOTOR_DIR_REV;
}
return -1;
}
//电机启停控制
char l6235d_hori_start_stop(char flag)
{
if(flag == L6235D_MOTOR_START)
{
L6235D_HORI_EN_ENABLE;
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
L6235D_HORI_BRAKE_START;
return L6235D_MOTOR_START;
}
if(flag == L6235D_MOTOR_STOP)
{
L6235D_HORI_BRAKE_STOP;
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
L6235D_HORI_EN_DISABLE;
return L6235D_MOTOR_STOP;
}
return -1;
}
char l6235d_vert_start_stop(char flag)
{
if(flag == L6235D_MOTOR_START)
{
L6235D_VERT_EN_ENABLE;
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
L6235D_VERT_BRAKE_START;
return L6235D_MOTOR_START;
}
if(flag == L6235D_MOTOR_STOP)
{
L6235D_VERT_BRAKE_STOP;
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
L6235D_VERT_EN_DISABLE;
return L6235D_MOTOR_STOP;
}
return -1;
}
#endif