OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2653|回复: 0

有关超声波避障的部分程序,开始在90度位置测量,当有障碍后再45度和135度测量,但是当90度未检测到障碍物后,舵机仍然在转,...

[复制链接]
回帖奖励 10 金钱 回复本帖可获得 2 金钱奖励! 每人限 1 次

2

主题

5

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-5-2
在线时间
3 小时
发表于 2018-5-2 11:34:25 | 显示全部楼层 |阅读模式
float Distance;      //¾ààë   

void csb_Configuration(void)//¨
{  
  GPIO_InitTypeDef GPIO_InitStructure;        //êäèëêä3ö¿ú¶¨òå
        EXTI_InitTypeDef EXTI_InitStructure;  //ÖD¶ÏÏßÅäÖÃ
        NVIC_InitTypeDef NVIC_InitStructure;  //ÖD¶ÏóÅÏè¼¶
       
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);//ê1ÄüGPIOê±Öó

  GPIO_InitStructure.GPIO_Pin = TRIG_PIN;                                          //PC.5
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //ÆμÂê50MHZ         
  GPIO_Init(TRIG_PORT, &GPIO_InitStructure);              //3õê¼»ˉGPIOC.5

  GPIO_InitStructure.GPIO_Pin = ECHO_PIN;                                   //PC.4
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;                 //éÏà-êäèë
  GPIO_Init(ECHO_PORT,&GPIO_InitStructure);                                 //3õê¼»ˉGPIOC.4
       
       
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource4); //PC.4

        EXTI_InitStructure.EXTI_Line = EXTI_Line4; //μúËĸùÖD¶ÏÏß
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;          //Ä£ê½ÎaÖD¶ÏÄ£ê½
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //éÏéyÑØ′¥·¢
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;  //ê1Äüía2¿ÖD¶Ï
  EXTI_Init(&EXTI_InitStructure);                                         //3õê¼»ˉía2¿ÖD¶Ï
               
                       
        NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;                             //éèÖÃ4í¨μà
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;         //ÇàÕ¼óÅÏè¼¶Îa2
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                           //Ïìó|óÅÏè¼¶Îa2
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                 //ê1Äüía2¿ÖD¶Ïí¨μà
  NVIC_Init(&NVIC_InitStructure);                                   //óÅÏè¼¶éèÖÃ
}

//------------------------éèÖÃÖD¶Ïoˉêy---------------------------------------------
void EXTI4_IRQHandler(void)
{
        delay_us(10);                                      //Ñóê±10us
  if(EXTI_GetITStatus(EXTI_Line4) != RESET)
        {
                        TIM_SetCounter(TIM3,0);
                        TIM_Cmd(TIM3, ENABLE);                                       //¿aÆô¶¨ê±Æ÷3
               
                        while(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                   //μè′y½óêÕDÅoÅ

                        TIM_Cmd(TIM3, DISABLE);                                                         //1رն¨ê±Æ÷3
                        Distance=TIM_GetCounter(TIM3)*340/200;                        //ÿ′μÇ1′ÎêyÎa1.7CM£¬
          

                        EXTI_ClearITPendingBit(EXTI_Line4);  //Çå3t±ê־λ
        }
}


int  UltrasonicWave_StartMeasure()
{
  int ZS_TEMP;
        GPIO_SetBits(TRIG_PORT,TRIG_PIN);                  
  delay_us(20);                                    
  GPIO_ResetBits(TRIG_PORT,TRIG_PIN);
        ZS_TEMP=Distance*10;
        return ZS_TEMP;
}


int main()
{  
         delay_init();            
         csb_Configuration();        //¶Ô3¬éù2¨Ä£¿é3õê¼»ˉ
         TIM3_JL_Init(4999,7199);//ÆμÂê72M/7200=10K,¼Çò»′Îê±¼äÎa0.1MS,×î¸ß¼Æêy5000′Îê±¼äÎa500MS£¬Ôò×îμí¾ààëÎa1.7cM£¬×î¸ß¾ààëÎa340MM
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
         uart_init(115200);
   delay_init();
   TIM2_PWM_Init(1999,719);
        while(1)
        { int ZJ_temp,Z_temp,Y_temp;
                ZJ_temp = ZJ_detection();
                if(ZJ_temp<80&&ZJ_temp>0)
                {  Z_temp=Z_detection();
                   delay_ms(500);
                       
                        Y_temp=Y_detection();
                 delay_ms(500);
               
                }




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 16:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表