STM32超声波测距原理与实战。

超声波模块(HC-SR04)原理

HC-SR04是一种常见的低成本超声波测距模块,通过发射超声波并接收反射信号来计算距离。其工作原理基于声波在空气中的传播速度(约340m/s),通过测量发射与接收的时间差(ToF,Time of Flight)实现测距。模块包含四个引脚:VCC(5V供电)、GND、Trig(触发信号输入)和Echo(回响信号输出)。

工作流程

  1. 向Trig引脚输入至少10μs的高电平触发信号。
  2. 模块自动发射8个40kHz的超声波脉冲,并检测回波。
  3. 模块通过Echo引脚输出高电平,高电平持续时间与距离成正比(计算公式如下):

距离(cm)= (高电平时间(μs)× 声速(340m/s)) / 2 / 10000

STM32硬件连接

以STM32F103C8T6为例,典型连接方式如下:

  • VCC → 5V电源
  • GND → 共地
  • Trig → PA0(任意GPIO输出模式)
  • Echo → PA1(任意GPIO输入模式,支持外部中断或输入捕获)

需注意:

  1. 若STM32为3.3V逻辑电平,建议在Echo信号线上串联1kΩ电阻分压。
  2. 若需长距离稳定测量,可在VCC与GND之间并联100μF电容滤波。

驱动实现(基于HAL库)

初始化配置

配置Trig引脚为推挽输出,Echo引脚为浮空输入,并初始化定时器(用于高电平时间测量):

// GPIO初始化
void HC_SR04_Init(void) {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    
    // Trig引脚配置(PA0)
    __HAL_RCC_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值