引言
在嵌入式系统开发中,距离测量是一个常见的需求,而HC-SR04超声波测距模块因其简单易用和成本低廉而广受欢迎。本文将结合两篇优秀的博客文章,详细介绍如何使用STM32F103C8T6微控制器与HC-SR04模块结合进行距离测量,并展示如何通过LED灯或OLED屏幕显示测量结果。
硬件准备
- STM32F103C8T6开发板
- HC-SR04超声波测距模块
- LED灯或OLED屏幕(用于显示结果)
- 杜邦线若干
- 烧录器(如ST-Link)
软件环境
- 开发工具:Keil MDK
- 配置工具:STM32CubeMX
- 串口助手或OLED显示库(可选)
HC-SR04超声波测距模块
HC-SR04是一款能够提供2cm至400cm范围内精度为3mm的超声波测距模块。它通过发送超声波脉冲并接收回波来测量距离。工作原理是模块发出至少10us的高电平信号后,自动发送8个40kHz的方波并检测回波信号。回波信号的高电平持续时间即为超声波往返时间,通过公式计算出实际距离。
STM32CubeMX配置
- 芯片选择:选择STM32F103C8T6微控制器。
2.时钟配置:配置RCC、SYS和时钟树以确保系统稳定运行。
3.GPIO配置:将HC-SR04的Trig和Echo引脚分别连接到STM32的GPIO,并配置相应的模式。
4.串口配置(如果使用串口助手):配置串口用于调试输出。
5.定时器配置:配置定时器并开启中断,用于测量超声波往返时间。
程序编写
主要思路
- 初始化:初始化GPIO、定时器、串口或OLED等外设。
- 测距逻辑:发送10us以上的高电平信号至Trig引脚启动测距,然后在Echo引脚等待高电平输出,记录高电平持续时间。
- 距离计算:根据高电平时间计算距离,公式为:距离(cm)=高电平时间(us)×3402×10000距离(cm)=2×10000高电平时间(us)×340。