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

104 lines
2.5 KiB
C
Raw Normal View History

2025-05-21 01:55:40 +00:00
#include "l6235d.h"
//l6235d<35><64>ʼ<EFBFBD><CABC>
#ifdef L6235D
void l6235d_init()
{
//ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>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<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gpio_mode_set(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, GPIO_PIN_10);//PD10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_10| GPIO_PIN_11| GPIO_PIN_12);
//ˮƽhall<6C><6C>PD13-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;
//<2F><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>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<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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<43><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_9);
//<2F><>ֱhall<6C><6C>PC6-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;
}
//<2F>趨ת<E8B6A8><D7AA>
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;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>
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