GD32/AT32双平台:US-100超声波测距UART模式驱动详解(附完整代码)
·
US-100 超声波测距传感器驱动教程(UART 模式)
1. 传感器简介
US-100 是一款超声波测距模块,支持串口(UART)和电平触发(Trig/Echo)两种工作模式。本教程重点介绍 UART 模式,直接通过串口发送命令并获取距离值,无需精确计时。
参数规格
| 参数 | 值 |
|---|---|
| 工作电压 | 2.4V ~ 5.5V |
| 测距范围 | 2cm ~ 450cm |
| 测距精度 | ±0.3cm + 0.2% |
| 串口波特率 | 9600 bps(默认),8N1 |
| 模块大小 | 45mm x 20mm x 15mm |
引脚定义
| 引脚 | 说明 |
|---|---|
| VCC | 电源 2.4V~5.5V |
| TX | 串口发送(UART 模式,连 MCU RX) |
| RX | 串口接收(UART 模式,连 MCU TX) |
| GND | 地 |
硬件接线(UART 模式)
| US-100 | GD32E23x | AT32F403A |
|---|---|---|
| VCC | 3.3V | 3.3V |
| TX | PA3 (RX) | PA3 (RX) |
| RX | PA2 (TX) | PA2 (TX) |
| GND | GND | GND |
2. UART 通信协议
US-100 UART 模式使用 9600 bps、8N1 格式:
| 命令 | 值 | 说明 |
|---|---|---|
| 距离测量 | 0x55 | 返回 2 字节:H_Byte L_Byte |
| 温度测量 | 0x50 | 返回 1 字节:温度值 °C |
距离测量流程:
- 主机发送 0x55
- US-100 返回 2 字节
- 距离(mm) = H_Byte*256 + L_Byte
3. GD32E23x 驱动实现
/* us100.c */
#include "usart_config.h"
#define CMD_READ_DIST 0x55
#define CMD_READ_TEMP 0x50
void us100_init(void) {
usart_config();
delay_ms(100);
}
uint16_t us100_read_distance(void) {
uint8_t h_byte, l_byte;
usart_send_byte(CMD_READ_DIST);
delay_ms(50);
if (usart_rx_available() < 2) return 0xFFFF;
h_byte = usart_recv_byte();
l_byte = usart_recv_byte();
return (uint16_t)h_byte*256 + l_byte;
}
uint8_t us100_read_temperature(void) {
usart_send_byte(CMD_READ_TEMP);
delay_ms(50);
if (usart_rx_available() < 1) return 0xFF;
return usart_recv_byte();
}
主程序:
int main(void) {
uint16_t distance;
systick_init();
usart1_init();
led_init();
us100_init();
while (1) {
delay_ms(500);
distance = us100_read_distance();
if (distance == 0xFFFF) {
usart_puts("[FAIL] Read timeout!\r\n");
} else {
usart_puts("[OK] Distance: ");
usart_putint(distance);
usart_puts(" mm\r\n");
}
}
}
串口输出:
[OK] Distance: 150 mm
[OK] Distance: 152 mm
4. AT32F403A 适配
AT32 版本仅寄存器差异:头文件、GPIO模式、时钟使能、主频适配。
5. 编译与烧录
# GD32
text data bss dec hex
5124 0 2812 7936 1f00 US100_GD32.elf
# AT32
text data bss dec hex
4016 0 4 4020 0fb4 US100_AT32.elf
6. 注意事项
- 必须移除背面短接帽才能进入 UART 模式
- 发送命令后需等待 50ms 再读取
- 超出测距范围时模块不返回数据,需超时处理
\n\n> 完整工程源码(含 Keil 工程文件)已整理完毕,详见博主主页。
更多推荐

所有评论(0)