找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10147|回复: 4
收起左侧

STM32的超声波测距源程序

[复制链接]
ID:202979 发表于 2017-5-20 21:30 | 显示全部楼层 |阅读模式
STM32的超声波测距源程序
0.png

单片机源程序如下:
  1. #include "CHAO.h"
  2. #include "timer.h"
  3. #include "delay.h"
  4. #include "LED.h"
  5. #include "usart.h"
  6. #include "stm32f10x_exti.h"
  7. #include "stm32f10x_gpio.h"
  8. #define        TRIG_PORT1      GPIOB                //TRIG      
  9. #define        ECHO_PORT1      GPIOB                //ECHO
  10. #define        TRIG_PIN1       GPIO_Pin_14  //TRIG B14    TIM1  
  11. #define        ECHO_PIN1       GPIO_Pin_15  //ECHO  B15


  12. #define        TRIG_PORT2     GPIOA                 //ECHO A2
  13. #define        ECHO_PORT2     GPIOA                //ECHO A3
  14. #define        TRIG_PIN2       GPIO_Pin_0  //TRIG A2     TIM2
  15. #define        ECHO_PIN2       GPIO_Pin_1  //ECHO A2     


  16. #define        TRIG_PIN4       GPIO_Pin_8 //TRIG B8     TIM4
  17. #define        ECHO_PIN4       GPIO_Pin_9  //ECHO B9   



  18. //////////////////////////////////////////////////////////////////////////////////         
  19. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  20. //ALIENTEK战舰STM32开发板
  21. //LED驱动代码          
  22. //正点原子@ALIENTEK
  23. //版本:V1.0
  24. //版权所有,盗版必究。
  25. //Copyright(C) 广州市星翼电子科技有限公司 2009-2019
  26. //All rights reserved                                                                          
  27. //////////////////////////////////////////////////////////////////////////////////           

  28. //初始化PB5和PE5为输出口.并使能这两个口的时钟                    
  29. //LED IO初始化
  30. u16 flag1=0;//蓝牙控制的关闭是否跟随
  31. u16 flag2=0;
  32. u16 flag4=0;

  33. u16 flagq=0;//前面
  34. u16 flagz=0;//左边
  35. u16 flagy=0;//右边


  36. u16 pwm3=186;//x
  37. u16 pwm4=155;


  38. void zadd(void)
  39. {
  40. if(pwm4>440)
  41.         {
  42.           pwm4=395;
  43.   }
  44.         else
  45. {
  46.            pwm4=pwm4+1;
  47. }
  48.   TIM_SetCompare4(TIM3,pwm4);
  49. }

  50. void yadd(void)
  51. {
  52.                          if(pwm3>440)
  53.                          {
  54.        pwm3=405;
  55.        }
  56.                          else
  57.                          {
  58.            pwm3=pwm3+1;
  59.                          }
  60.         TIM_SetCompare3(TIM3,pwm3);

  61. }
  62. void zjian(void)
  63. {
  64.                          if(pwm4<60)
  65.                          {
  66.              pwm4=45;
  67.        }
  68.                          else
  69.                          {
  70.            pwm4=pwm4-1;
  71.                          }
  72.   TIM_SetCompare4(TIM3,pwm4);
  73. }

  74. void yjian(void)
  75. {
  76.                          if(pwm3<60)
  77.                          {
  78.              pwm3=45;
  79.        }
  80.                          else
  81.                          {
  82.              pwm3=pwm3-1;
  83.                          }
  84.   TIM_SetCompare3(TIM3,pwm3);
  85. }



  86. void PD_USART2_Init(void)       
  87. {
  88.         GPIO_InitTypeDef GPIO_Initping;
  89.         USART_InitTypeDef USART_Initping;
  90.         NVIC_InitTypeDef NVIC_Initping;
  91.        
  92.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  93.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
  94.        
  95.         GPIO_Initping.GPIO_Mode=GPIO_Mode_AF_PP;
  96.         GPIO_Initping.GPIO_Pin=GPIO_Pin_2;
  97.         GPIO_Initping.GPIO_Speed=GPIO_Speed_10MHz;
  98.         GPIO_Init(GPIOA,&GPIO_Initping);
  99.        
  100.         GPIO_Initping.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  101.         GPIO_Initping.GPIO_Pin=GPIO_Pin_3;
  102.         GPIO_Initping.GPIO_Speed=GPIO_Speed_10MHz;
  103.         GPIO_Init(GPIOA,&GPIO_Initping);
  104.        
  105.         USART_Initping.USART_BaudRate=9600;
  106.         USART_Initping.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  107.         USART_Initping.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
  108.         USART_Initping.USART_Parity=USART_Parity_No;
  109.         USART_Initping.USART_StopBits=USART_StopBits_1;
  110.         USART_Initping.USART_WordLength=USART_WordLength_8b;
  111.        
  112.         USART_Init(USART2,&USART_Initping);
  113.        
  114.         USART_Cmd(USART2,ENABLE);//使能串口2
  115.         USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断
  116.        
  117.         NVIC_Initping.NVIC_IRQChannel=USART2_IRQn;
  118.         NVIC_Initping.NVIC_IRQChannelCmd=ENABLE;
  119.         NVIC_Initping.NVIC_IRQChannelPreemptionPriority=1;
  120.         NVIC_Initping.NVIC_IRQChannelSubPriority=1;
  121.         NVIC_Init(&NVIC_Initping);
  122. }



  123. void IN_Init(void)
  124. {

  125. GPIO_InitTypeDef  GPIO_InitStructure;
  126.        
  127. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);         //使能PB,PE端口时钟
  128.        
  129. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                                 // 端口配置       
  130. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
  131. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
  132. GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOA.11
  133. GPIO_SetBits(GPIOA,GPIO_Pin_11);                                                 //PA.11输出高

  134. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                                 //端口配置       
  135. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
  136. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
  137. GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOA.12
  138. GPIO_SetBits(GPIOA,GPIO_Pin_12);                                                 //PA.12 输出高

  139.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                                 //端口配置       
  140. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
  141. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
  142. GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOA.12
  143. GPIO_SetBits(GPIOA,GPIO_Pin_7);                                                 //PA.12 输出高

  144.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                                 //端口配置       
  145. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
  146. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
  147. GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOA.12
  148. GPIO_SetBits(GPIOA,GPIO_Pin_6);                                                 //PA.12 输出高
  149. }


  150. float CHAO_Distance1;      //计算出的距离  
  151. float CHAO_Distance2;      //计算出的距离
  152. float CHAO_Distance4;      //计算出的距离


  153. void CHAO_Init1(void)
  154. {
  155.   GPIO_InitTypeDef  GPIO_InitStructure;
  156.   EXTI_InitTypeDef EXTI_InitStructure;
  157.         NVIC_InitTypeDef NVIC_InitStructure;
  158.        
  159. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);         //使能PB端口时钟
  160. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        //使能复用功能时钟
  161.        
  162.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  //设为推挽输出模式
  163.         GPIO_InitStructure.GPIO_Pin=TRIG_PIN1;                                         
  164.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  165.         GPIO_Init(GPIOB ,&GPIO_InitStructure);
  166.                                  
  167.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//设为输入
  168.         GPIO_InitStructure.GPIO_Pin = ECHO_PIN1;                                     //PB15接ECH0
  169.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  170.         GPIO_Init(GPIOB ,&GPIO_InitStructure);

  171.                  //GPIOB.15          中断线以及中断初始化配置
  172.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource15);
  173.           EXTI_InitStructure.EXTI_Line=EXTI_Line15;
  174.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  175.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  176.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  177.           EXTI_Init(&EXTI_InitStructure);                //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
  178.                                        
  179.           NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;                        //使能按键所在的外部中断通道
  180.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;        //抢占优先级2
  181.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                                        //子优先级2
  182.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
  183.           NVIC_Init(&NVIC_InitStructure);            //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器       
  184. }


  185. void CHAO_Init2(void)
  186. {
  187.   GPIO_InitTypeDef  GPIO_InitStructure;
  188.   EXTI_InitTypeDef EXTI_InitStructure;
  189.         NVIC_InitTypeDef NVIC_InitStructure;
  190.        
  191. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //使能PB端口时钟
  192. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        //使能复用功能时钟
  193.        
  194.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  //设为推挽输出模式
  195.         GPIO_InitStructure.GPIO_Pin=TRIG_PIN2;                                         
  196.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  197.         GPIO_Init(GPIOA ,&GPIO_InitStructure);
  198.                                  
  199.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//设为输入
  200.         GPIO_InitStructure.GPIO_Pin =ECHO_PIN2 ;                              //PA3接ECH0
  201.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  202.         GPIO_Init(GPIOA ,&GPIO_InitStructure);

  203.                  //GPIOA.3  中断线以及中断初始化配置
  204.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource1);
  205.           EXTI_InitStructure.EXTI_Line=EXTI_Line1;
  206.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  207.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  208.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  209.           EXTI_Init(&EXTI_InitStructure);                //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
  210.                                        
  211.           NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;                        //使能按键所在的外部中断通道
  212.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;        //抢占优先级2
  213.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                                        //子优先级2
  214.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
  215.           NVIC_Init(&NVIC_InitStructure);            //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器       
  216. }

  217. void CHAO_Init4(void)
  218. {
  219.   GPIO_InitTypeDef  GPIO_InitStructure;
  220.   EXTI_InitTypeDef EXTI_InitStructure;
  221.         NVIC_InitTypeDef NVIC_InitStructure;
  222.        
  223. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);         //使能PB端口时钟
  224. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        //使能复用功能时钟
  225.        
  226.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  //设为推挽输出模式
  227.         GPIO_InitStructure.GPIO_Pin=TRIG_PIN4 ;                                         
  228.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  229.         GPIO_Init(GPIOB ,&GPIO_InitStructure);
  230.                                  
  231.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//设为输入
  232.         GPIO_InitStructure.GPIO_Pin = ECHO_PIN4 ;                                     //PB9接ECH0
  233.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  234.         GPIO_Init(GPIOB ,&GPIO_InitStructure);

  235.                  //GPIOB.9  中断线以及中断初始化配置
  236.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);
  237.           EXTI_InitStructure.EXTI_Line=EXTI_Line9;
  238.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  239.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  240.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  241.           EXTI_Init(&EXTI_InitStructure);                //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
  242.                                        
  243.           NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;                        //使能按键所在的外部中断通道
  244.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;        //抢占优先级2
  245.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                                        //子优先级2
  246.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                                //使能外部中断通道
  247.           NVIC_Init(&NVIC_InitStructure);            //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器       
  248. }

  249. void EXTI15_10_IRQHandler(void)
  250. {
  251.         delay_us(10);                                      //延时10us
  252.      if(EXTI_GetITStatus(EXTI_Line15) != RESET)
  253.         {
  254.                         TIM_SetCounter(TIM1,0);
  255.                   if(flag1==1)
  256.                         {
  257.                         TIM_Cmd(TIM1, ENABLE);  //开启时钟
  258.                         }
  259.                         else
  260.                         {
  261.                         TIM_Cmd(TIM1,DISABLE);  //关闭时钟
  262.                         }
  263.                         while(GPIO_ReadInputDataBit(ECHO_PORT1,ECHO_PIN1));                         //等待低电平
  264.                         TIM_Cmd(TIM1, DISABLE);                                                         //定时器2失能
  265.                         CHAO_Distance1=TIM_GetCounter(TIM1)*30*33/300.0;                                                                         //计算距离&&UltrasonicWave_Distance<150       

  266. //        printf("distance1:%f cm",CHAO_Distance1);

  267.         EXTI_ClearITPendingBit(EXTI_Line15);  //清除EXTI7线路挂起位
  268. }
  269. }


  270. void EXTI1_IRQHandler(void)
  271. {
  272.         delay_us(10);                                      //延时10us
  273.      if(EXTI_GetITStatus(EXTI_Line1) != RESET)
  274.         {
  275.                         TIM_SetCounter(TIM2,0);
  276.                   if(flag2==1)
  277.                         {
  278.                         TIM_Cmd(TIM2, ENABLE);  //开启时钟
  279.                         }
  280.                         else
  281.                         {
  282.                         TIM_Cmd(TIM2,DISABLE);  //关闭时钟
  283.                         }
  284.                         while(GPIO_ReadInputDataBit(ECHO_PORT2,ECHO_PIN2));                         //等待低电平

  285.                         TIM_Cmd(TIM2, DISABLE);                                                         //定时器2失能
  286.                         CHAO_Distance2=TIM_GetCounter(TIM2)*100*500.0;                                                         //计算距离&&UltrasonicWave_Distance<150
  287.                
  288. //        if(CHAO_Distance2>0)
  289. //        {
  290. //                printf("distance2:%f cm",CHAO_Distance2);
  291. //        }
  292.         EXTI_ClearITPendingBit(EXTI_Line1);  //清除EXTI7线路挂起位
  293. }
  294. }

  295. void EXTI9_5_IRQHandler(void)
  296. {
  297.         delay_us(10);                                      //延时10us
  298.      if(EXTI_GetITStatus(EXTI_Line9) != RESET)
  299.         {
  300.                         TIM_SetCounter(TIM4,0);
  301.                   if(flag4==1)
  302.                         {
  303.                         TIM_Cmd(TIM4, ENABLE);  //开启时钟
  304.                         }
  305.                         else
  306.                         {
  307.                         TIM_Cmd(TIM4,DISABLE);  //关闭时钟
  308.                         }
  309.                         while(GPIO_ReadInputDataBit(ECHO_PORT1,ECHO_PIN4));                         //等待低电平
  310.                         TIM_Cmd(TIM4, DISABLE);                                                         //定时器2失能
  311.                         CHAO_Distance4=TIM_GetCounter(TIM4)*5*34/200.0;                                                                         //计算距离&&UltrasonicWave_Distance<150       
  312. //        if(CHAO_Distance4>0)
  313. //        {
  314. //                printf("distance4:%f cm",CHAO_Distance4);
  315. //        }
  316.         EXTI_ClearITPendingBit(EXTI_Line9);  //清除EXTI7线路挂起位
  317. }
  318. }


  319. /*
  320. * 函数名:UltrasonicWave_StartMeasure
  321. * 描述  :开始测距,发送一个>10us的脉冲,然后测量返回的高电平时间
  322. * 输入  :无
  323. * 输出  :无       
  324. */
  325. void CHAO_ceju1(void)
  326. {
  327.   GPIO_SetBits(TRIG_PORT1,TRIG_PIN1);                   //送>10US的高电平RIG_PORT,TRIG_PIN这两个在define中有?
  328.   delay_us(20);                                      //延时20US
  329.   GPIO_ResetBits(TRIG_PORT1,TRIG_PIN1);       
  330. }
  331. void CHAO_ceju2(void)
  332. {
  333.   GPIO_SetBits(TRIG_PORT2,TRIG_PIN2);                   //送>10US的高电平RIG_PORT,TRIG_PIN这两个在define中有?
  334.   delay_us(20);                                      //延时20US
  335.   GPIO_ResetBits(ECHO_PORT2,TRIG_PIN2);       
  336. }
  337. void CHAO_ceju4(void)
  338. {
  339.   GPIO_SetBits(TRIG_PORT1,TRIG_PIN4);                   //送>10US的高电平RIG_PORT,TRIG_PIN这两个在define中有?
  340.   delay_us(20);                                      //延时20US
  341.   GPIO_ResetBits(ECHO_PORT1,ECHO_PIN4);       
  342. }

  343. //void bijiao(void)
  344. //{
  345. //if( CHAO_Distance1<10)
  346. //{
  347. //  LED0=0;
  348. //}
  349. //else
  350. //{
  351. //LED0=1;
  352. //}
  353. //}


  354. //void GenSui_Init(void)
  355. //{
  356. //if( CHAO_Distance1>1&&CHAO_Distance1<10)
  357. //{
  358. //      IN1=0;
  359. //                   IN2=0;
  360. //                   IN3=0;
  361. //                   IN4=0;       
  362. //}
  363. //else
  364. //        if(CHAO_Distance1>=10&&CHAO_Distance1<30)
  365. //{
  366. //// stop();       
  367. //       IN1=1;
  368. //                   IN2=0;
  369. //                   IN3=0;
  370. //                   IN4=1;       
  371. //}
  372. ////else
  373. ////        if(CHAO_Distance1>=20&&CHAO_Distance1<40)
  374. ////        {
  375. //////  forward();
  376. ////                   IN1=1;
  377. ////                   IN2=0;   //左边电机
  378. ////                   IN3=0;
  379. ////                   IN4=1;  //右边电机
  380. ////  }
  381. ////else
  382. ////{
  383. //// flagz=1;//左边
  384. //// flagy=1;//右边
  385. ////}
  386. ////if(CHAO_Distance2>0&&CHAO_Distance2<20&&flagz==1)
  387. ////{
  388. //////turnreft();
  389. ////}
  390. ////else
  391. ////{
  392. //// flagz=0;//左边
  393. ////}
  394. ////if(CHAO_Distance4>0&&CHAO_Distance4<20&&flagy==1)
  395. ////{
  396. //////turnleft();
  397. ////}
  398. ////else
  399. ////{
  400. //// flagy=0;//右边
  401. ////}

  402. //}


  403. void USART2_IRQHandler(void)
  404. {
  405. u8 res;
  406.        
  407.          if(USART_GetITStatus(USART2,USART_IT_RXNE))
  408. {
  409.      res= USART_ReceiveData(USART2);
  410.      USART_SendData(USART2,res);
  411.          
  412.          if(res==0x08)//开启跟随
  413.          {
  414.            flag1=1;
  415.                  flag2=1;
  416.                  flag4=1;
  417.          }
  418.         if(res==0x09)//关闭跟随
  419.          {
  420.              flag1=0;
  421.                           flag2=0;
  422.                    flag4=0;
  423.                    IN1=0;
  424.                    IN2=0;
  425.                    IN3=0;
  426.                    IN4=0;
  427.          }
  428.          if(res==0x01)//前进
  429.          {
  430.        IN1=1;
  431.                    IN2=0;   //左边电机
  432.                    IN3=0;
  433.                    IN4=1;  //右边电机
  434.          }
  435.          if(res==0x02)//后退
  436. ……………………

  437. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
基于stm32体感手势手环.rar (2.95 MB, 下载次数: 116)
回复

使用道具 举报

ID:315083 发表于 2018-8-12 09:54 | 显示全部楼层
赞。。。。
回复

使用道具 举报

ID:338507 发表于 2018-8-15 20:50 | 显示全部楼层
为什么void USART2_IRQHandler(void)段中的IN1=0,IN2=0之类的语句都是错的
回复

使用道具 举报

ID:338507 发表于 2018-8-15 20:52 | 显示全部楼层
为什么void USART2_IRQHandler(void)段中IN1=0,IN1=1之类的语句是错误的
回复

使用道具 举报

ID:313095 发表于 2018-8-23 10:25 | 显示全部楼层
不是超声波的,是我下错了么?里面的程序是MPU6050的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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