#define Moto_PwmMax 899 //最大不能超过900 值越大,输出的电压越低
#define LEFT_MOTOR_F TIM3->CCR1
#define LEFT_MOTOR_B TIM3->CCR2
#define RIGHT_MOTOR_F TIM3->CCR3
#define RIGHT_MOTOR_B TIM3->CCR4
#define go_foward_speed {LEFT_MOTOR_F =2500; LEFT_MOTOR_B =0; RIGHT_MOTOR_F =2500; RIGHT_MOTOR_B =0; }
#define go_foward {LEFT_MOTOR_F =600; LEFT_MOTOR_B =0; RIGHT_MOTOR_F =600; RIGHT_MOTOR_B =0; }
#define go_back {LEFT_MOTOR_F =0; LEFT_MOTOR_B =600; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =600; }
#define go_back_speed {LEFT_MOTOR_F =0; LEFT_MOTOR_B =2500; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =2500; }
#define turn_left {LEFT_MOTOR_F =0; LEFT_MOTOR_B =0; RIGHT_MOTOR_F =1000; RIGHT_MOTOR_B =0;}// delay_ms(200);RIGHT_MOTOR_F=0;}
#define turn_right {LEFT_MOTOR_F =1000; LEFT_MOTOR_B =0; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =0;}//delay_ms(200);LEFT_MOTOR_F=0; }
#define stop {LEFT_MOTOR_F =0; LEFT_MOTOR_B =0; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =0; }
#define turn_around {LEFT_MOTOR_F =0; LEFT_MOTOR_B =1000; RIGHT_MOTOR_F =1500; RIGHT_MOTOR_B =0; delay_ms(700);}
extern float mo1,mo2,mo3,mo4;
void PWM_Init(u16 arr,u16 psc);
#endif
int main(void)
{
InitStm32Clock(9); //9倍频
InitDelay(72); //系统时钟72M
InitTimerx(10000,72); //
InitIO();
uart_init(72,9600);
flag=0;
PWM_Init(999,71);
receive_char(3);
tmd=USART3->DR-48;
//printf("%d",tmp);
if(tmd==0)
{
stop;
}
if(tmd==1)
{
go_foward;
}
if(tmd==2)
{
go_foward_speed;
}
if(tmd==3)
{
turn_left;
}
if(tmd==4)
{
go_back;
}
if(tmd==5)
{
go_back_speed;
}
if(tmd==6)
{
turn_right;
}
}
}
|