找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4109|回复: 0
打印 上一主题 下一主题
收起左侧

两路超声波us015测距stm32程序源码

[复制链接]
跳转到指定楼层
楼主
ID:303402 发表于 2018-4-7 23:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用了两路定时器输入捕获功能实现两路超声波测距程序。如有不足之处希望能指正!

stm32单片机源程序如下:
  1. #include "public.h"
  2. #include "us015.h"
  3. #include "systick.h"
  4. #include "time.h"
  5. #include "printf.h"
  6. #include "beep.h"
  7. extern u8  TIM5CH1_CAPTURE_STA;        //输入捕获状态                           
  8. extern u16 TIM5CH1_CAPTURE_VAL;    //输入捕获值   
  9. extern u8 TIM3CH2_CAPTURE_STA; //输入捕获状态
  10. extern u16 TIM3CH2_CAPTURE_VAL;//输入捕获值

  11. int main(void)
  12.         {        
  13. static float temp=0,temp1=0;
  14.   float length=0;
  15.         u8 flag=0,flag1=0;
  16.         BEEP_Init();
  17.         us015_init();
  18.         printf_init();      
  19.     input_init();    //以1Mhz的频率计数
  20.     input_init1();
  21.       
  22.            while(1)
  23.     {   
  24.           us015();
  25.                  us0151();
  26.        if(TIM5CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
  27.         {        
  28.             temp=TIM5CH1_CAPTURE_STA&0X3F;
  29.             temp*=65536;//溢出时间总和
  30.             temp+=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
  31.                                  temp=temp*0.34/2;        
  32.             TIM5CH1_CAPTURE_STA=0;//开启下一次捕获
  33.         }  
  34.                  if(TIM3CH2_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
  35.         {
  36.                   
  37.             temp1=TIM3CH2_CAPTURE_STA&0X3F;
  38.             temp1*=65536;//溢出时间总和
  39.             temp1+=TIM3CH2_CAPTURE_VAL;//得到总的高电平时间
  40.                                  temp1=temp1*0.34/2;        
  41.            TIM3CH2_CAPTURE_STA=0;//开启下一次捕获
  42.         }
  43.         
  44.                
  45.                 length=temp1+temp;
  46.                  printf("距离长度:%f mm\r\n",length);//打印总的高点平时间
  47.                  if(length<127)
  48.                  {
  49.                  sound1();
  50.                  }
  51.                          delay_ms(10);
  52.                 }        
  53.                
  54.     }

复制代码

所有资料51hei提供下载:
用串口输出两个超声波所测距离之和.rar (399.94 KB, 下载次数: 79)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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