/*DIANJI1定义*/
#define DIANJIL_1_H GPIOA->BSRR = GPIO_Pin_2
#define DIANJIL_1_L GPIOA->BRR = GPIO_Pin_2
#define DIANJIL_2_H GPIOA->BSRR = GPIO_Pin_3
#define DIANJIL_2_L GPIOA->BRR = GPIO_Pin_3
#define DIANJI1_read_Q GPIOA->IDR & GPIO_Pin_2
#define DIANJI1_read_H GPIOA->IDR & GPIO_Pin_3
/*DIANJI2定义*/
#define DIANJIR_1_H GPIOA->BSRR = GPIO_Pin_4
#define DIANJIR_1_L GPIOA->BRR = GPIO_Pin_4
#define DIANJIR_2_H GPIOA->BSRR = GPIO_Pin_5
#define DIANJIR_2_L GPIOA->BRR = GPIO_Pin_5
#define DIANJI2_read_Q GPIOA->IDR & GPIO_Pin_4
#define DIANJI2_read_H GPIOA->IDR & GPIO_Pin_5
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//-------------------------------------------------------
//PWM输出
//-------------------------------------------------------
void PWM_output (int PWM_LH,int PWM_RH)
{
if (PWM_LH>0)
{
DIANJIL_1_H ; //左电机前进 PA2_H PA3_L
DIANJIL_2_L ;
}
else
{
DIANJIL_1_L ; //左电机后退 PA2_L PA3_H
DIANJIL_2_H ;
PWM_LH*=-1;
}
if (PWM_LH>98)
{
PWM_LH=98;
}
if (PWM_RH>0)
{
DIANJIR_1_L ; //右电机前进 PA4_L PA5_H
DIANJIR_2_H ;
}
else
{
DIANJIR_1_H ; //右电机后退 PA4_L PA5_H
DIANJIR_2_L ;
PWM_RH*=-1;
}
if (PWM_RH>98)
{
PWM_RH=98;
}
pwm_l=PWM_LH;
pwm_r=PWM_RH;
}
|