华电杯yzx

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Motor.h"
#include "Servo.h"
#include "uart.h"
#include "PWM.h"
u16 Cx,Cy;	


/**************************************************************************
  摄像头传输数据   A为角度正负
                   B为角度大小
				   C,D,E分别为三个标志位(摄像头视野里总左向右依次三个)
				   F为停车标志位
**************************************************************************/

int a=0;
int b=0;
int c=0;

float Angle;

int main(void)
{
/**********************************************
		       定义蜂鸣器io口
**********************************************/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_12;
	GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_Initstructure);
	GPIO_SetBits(GPIOB,GPIO_Pin_12);
	
	Servo_Init();
	
	Motor_Init1();
	Motor_Init2();
	
	USART1_Init();
  
	OLED_Init();
	while (1)
		
	{
        Servo_SetAngle(Angle);

//	    OLED_ShowSignedNum(1, 1, B, 3);	
//		
//	    OLED_ShowSignedNum(1, 6, C, 3);		
//	    OLED_ShowSignedNum(2, 1, D, 3);		
//	    OLED_ShowSignedNum(2, 6, E, 3);		
//		
//	    OLED_ShowSignedNum(3, 1, F, 3);		
//		
//	    OLED_ShowSignedNum(3, 6, a, 3);		
		
/**********************************************
		          驱动
**********************************************/
        
	    if(F==1)//识别标志变量复复赋值
		{
			b=1;
		}
		if(b==0)//电机占空比
		{
			Motor_SetSpeed1(40);		
			Motor_SetSpeed2(40);
		}
	    else if(b==1)//识别到标志位停车,蜂鸣器和灯光响应
		{
			Motor_SetSpeed1(0);		
			Motor_SetSpeed2(0);
			GPIO_ResetBits(GPIOB,GPIO_Pin_12);
			Delay_s(1);
			
			GPIO_SetBits(GPIOB,GPIO_Pin_12);
			Delay_s(6000);
		}
/*******************************************
        识别岔路第一次忽略第二次进入 
*******************************************/

		if(D==1&&E==1&&a==0)
		{
			Angle=0;
			Delay_ms(800);
			a++;
		}
		else
	    {
		    Angle=B;
	    }

	}
}