超声波模块(HC-SR04)原理
HC-SR04是一种常见的低成本超声波测距模块,通过发射超声波并接收反射信号来计算距离。其工作原理基于声波在空气中的传播速度(约340m/s),通过测量发射与接收的时间差(ToF,Time of Flight)实现测距。模块包含四个引脚:VCC(5V供电)、GND、Trig(触发信号输入)和Echo(回响信号输出)。
工作流程
- 向Trig引脚输入至少10μs的高电平触发信号。
- 模块自动发射8个40kHz的超声波脉冲,并检测回波。
- 模块通过Echo引脚输出高电平,高电平持续时间与距离成正比(计算公式如下):
距离(cm)= (高电平时间(μs)× 声速(340m/s)) / 2 / 10000
STM32硬件连接
以STM32F103C8T6为例,典型连接方式如下:
- VCC → 5V电源
- GND → 共地
- Trig → PA0(任意GPIO输出模式)
- Echo → PA1(任意GPIO输入模式,支持外部中断或输入捕获)
需注意:
- 若STM32为3.3V逻辑电平,建议在Echo信号线上串联1kΩ电阻分压。
- 若需长距离稳定测量,可在VCC与GND之间并联100μF电容滤波。
驱动实现(基于HAL库)
初始化配置
配置Trig引脚为推挽输出,Echo引脚为浮空输入,并初始化定时器(用于高电平时间测量):
// GPIO初始化
void HC_SR04_Init(void) {
GPIO_InitTypeDef GPIO_InitStruct = {0};
// Trig引脚配置(PA0)
__HAL_RCC_
2013

被折叠的 条评论
为什么被折叠?



