跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 开源分享
  4. 华电杯yzx

华电杯yzx

已定时 已固定 已锁定 已移动 开源分享
1 帖子 1 发布者 410 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • leoraiiionL 离线
    leoraiiionL 离线
    leoraiiion
    写于 最后由 编辑
    #1
    #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;
    	    }
    
    	}
    }
    
    
    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门