标题:
两路超声波us015测距stm32程序源码
[打印本页]
作者:
1002839652
时间:
2018-4-7 23:36
标题:
两路超声波us015测距stm32程序源码
用了两路定时器输入捕获功能实现两路超声波测距程序。如有不足之处希望能指正!
stm32单片机源程序如下:
#include "public.h"
#include "us015.h"
#include "systick.h"
#include "time.h"
#include "printf.h"
#include "beep.h"
extern u8 TIM5CH1_CAPTURE_STA; //输入捕获状态
extern u16 TIM5CH1_CAPTURE_VAL; //输入捕获值
extern u8 TIM3CH2_CAPTURE_STA; //输入捕获状态
extern u16 TIM3CH2_CAPTURE_VAL;//输入捕获值
int main(void)
{
static float temp=0,temp1=0;
float length=0;
u8 flag=0,flag1=0;
BEEP_Init();
us015_init();
printf_init();
input_init(); //以1Mhz的频率计数
input_init1();
while(1)
{
us015();
us0151();
if(TIM5CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
{
temp=TIM5CH1_CAPTURE_STA&0X3F;
temp*=65536;//溢出时间总和
temp+=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
temp=temp*0.34/2;
TIM5CH1_CAPTURE_STA=0;//开启下一次捕获
}
if(TIM3CH2_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
{
temp1=TIM3CH2_CAPTURE_STA&0X3F;
temp1*=65536;//溢出时间总和
temp1+=TIM3CH2_CAPTURE_VAL;//得到总的高电平时间
temp1=temp1*0.34/2;
TIM3CH2_CAPTURE_STA=0;//开启下一次捕获
}
length=temp1+temp;
printf("距离长度:%f mm\r\n",length);//打印总的高点平时间
if(length<127)
{
sound1();
}
delay_ms(10);
}
}
复制代码
所有资料51hei提供下载:
用串口输出两个超声波所测距离之和.rar
(399.94 KB, 下载次数: 79)
2018-4-7 23:57 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1