stm32f103c8t6超声波测距电路原理图
时间: 2025-06-15 09:42:23 浏览: 18
### STM32F103C8T6 超声波测距电路原理图设计方案
在设计基于STM32F103C8T6的超声波测距系统时,需要明确HC-SR04传感器与STM32之间的连接方式。以下是一个完整的电路原理图设计方案及其实现细节。
#### 1. HC-SR04与STM32F103C8T6的连接
HC-SR04模块有四个引脚:VCC、GND、Trig(触发信号输入)、Echo(回响信号输出)。STM32F103C8T6通过GPIO引脚与HC-SR04进行通信[^1]。具体连接如下:
- **VCC** 连接到5V电源。
- **GND** 连接到地。
- **Trig** 连接到STM32的一个GPIO引脚(例如PB6)。
- **Echo** 连接到另一个GPIO引脚(例如PB7),并配置为输入模式。
#### 2. 电路原理图设计
以下是HC-SR04与STM32F103C8T6的基本连接示意图:
```plaintext
+-------------------+
| STM32F103C8T6 |
| |
| PB6 (Trig) ---->| Trig (HC-SR04)
| PB7 (Echo) <----| Echo (HC-SR04)
| GND -----------| GND (HC-SR04)
| 5V ------------| VCC (HC-SR04)
+-------------------+
```
为了确保信号完整性,建议在Echo引脚上添加一个上拉电阻(通常为10kΩ),以避免浮动输入问题[^2]。
#### 3. 硬件设计注意事项
- **电源管理**:HC-SR04的工作电压为5V,而STM32F103C8T6的I/O引脚最大耐压为5V。因此可以直接将Trig和Echo引脚连接到STM32的GPIO引脚,无需额外的电平转换电路[^1]。
- **去耦电容**:在HC-SR04的电源引脚附近放置一个0.1μF的陶瓷电容,以减少电源噪声。
- **信号保护**:为了防止静电损坏,可以在Echo引脚上添加一个瞬态电压抑制二极管(TVS二极管)。
#### 4. 软件实现
以下是一个基于标准外设库的简单代码示例,用于测量距离:
```c
#include "stm32f1xx_hal.h"
void GetDistance() {
int cnt = 0;
float distance = 0;
// 发送触发信号
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
HAL_Delay_us(10); // 延迟10us
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
// 等待Echo信号变为高电平
while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7) == GPIO_PIN_RESET);
// 启动定时器
HAL_TIM_Base_Start(&htim2);
// 等待Echo信号变为低电平
while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7) == GPIO_PIN_SET);
// 停止定时器
HAL_TIM_Base_Stop(&htim2);
// 获取计数值
cnt = __HAL_TIM_GetCounter(&htim2);
// 计算距离
distance = cnt * 340 / 2 * 0.000001 * 100; // 距离单位为厘米
if(distance <= 5){
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);
} else {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);
}
HAL_Delay(500);
}
```
#### 5. 测试与校准
完成硬件连接和软件编写后,需对系统进行测试和校准。可以通过调整定时器的分辨率或修正超声波传播速度来提高测量精度[^3]。
---
阅读全文
相关推荐


















