104 lines
2.5 KiB
C
104 lines
2.5 KiB
C
#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);
|
||
//水平hall,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;
|
||
|
||
//垂直电机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);
|
||
|
||
//垂直hall,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;
|
||
}
|
||
//设定转向
|
||
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
|