[STM32F103C8T6] 超声波测距

本文介绍使用STM32F103C8T6单片机进行超声波测距的实验,详细阐述了超声波测距原理,包括如何触发发送、监测回波,并通过计算高电平持续时间来确定距离。实验目标是当距离小于5cm时,LED亮起,否则熄灭。内容还包括微秒级延时函数和获取距离的函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验目标:超声波测距:小于5cm,led被点亮,反之熄灭 

超声波测距原理:

怎么让它发送波:
        Trig ,给 Trig 端口至少 10us 的高电平
怎么知道它开始发了:
        Echo信号,由低电平跳转到高电平,表示开始发送波
怎么知道接收了返回波:
        Echo,由高电平跳转回低电平,表示波回来了
怎么算时间
        Echo引脚维持高电平的时间!
波发出去的那一下,开始启动定时器
        波回来的那一下,我们开始停止定时器,计算出中间经过多少时间
怎么算距离:
        距离 = 速度 ( 340m/s ) * 时间 /2
 

void GetDistance()
{
	unsigned int distance = 0,cnd = 0;
 //1.发送波,同时启动定时器
	//1.1怎么发送波:给Trig一个超过10us的高电平
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
		TIM2_Delay_us(20);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
		//1.2怎么知道发了:echo从低电平到高电平为发送
		while(HAL_GPIO_ReadPi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值