一 硬件接口图

UART1接口说明:
| 序号 | 说明 | 备注 |
|---|---|---|
| 1 | VCC | 输出电压3.3V |
| 2 | TX1 | 发送数据TTL电平 |
| 3 | RX1 | 接收数据TTL电平 |
| 4 | GND | 电源参考地 |
UART2接口说明:
| 序号 | 说明 | 备注 |
|---|---|---|
| 1 | VCC | 输出电压3.3V |
| 2 | TX2 | 发送数据TTL电平 |
| 3 | RX2 | 接收数据TTL电平 |
| 4 | GND | 电源参考地 |
二 在linux下查看串口
注意:操作系统分配串口号是随机的,请自行测试确认串口号.
若需要更改串口号不同,Windows可以在设备管理器里面通信端口(COM*)-> 属性 -> 高级 -> 修改COM端口号。
我安装的 Ubuntu 20.04 系统串口测试如下(非通用分配,用户需自行测试):
UART1 -> /dev/ttyS1
UART2 -> /dev/ttyS0
UART3 是 K1 内部 Debug 调试口,非用户使用。
输入以下命令查看有哪些可用串口
sudo dmesg | grep ttyS*
youyeetoo@youyeetoo-K1-SBC:~$ dmesg | grep ttyS*
[ 0.095774] printk: legacy console [tty0] enabled
[ 0.529385] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.554223] 00:02: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[ 0.576857] 00:08: ttyS4 at MMIO 0xfe040000 (irq = 17, base_baud = 6250000) is a 16550A
[ 1.171724] dw-apb-uart.5: ttyS5 at MMIO 0x4010005000 (irq = 20, base_baud = 7500000) is a 16550A
模块参数说明:

模块引脚说明:

示例接线方案:
超声波测距传感器模块(UART 受控) youyeetoo K1 开发板
1.25间距 4P端子
VCC ───────────────→ 3.3V
GND ───────────────→ GND
TX ───────────────→ RX
RX ───────────────→ TX
超声波模块引脚自行改线连接 K1 开发板 UART1 如下图所示

该传感器模组是一款基于机器人自动控制应用而设计的超声波避障传感器,针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高、防尘防水、寿命长、可靠性高等一系列优点。结合自主研发的异体声波处理技术,能识别并过滤异体声波,输出数据更加稳定可靠,使得模组在一定程度上降低了超声波同频干扰的概率,满足了用户对于机器人自动控制领域复杂环境的应用需求。
适用范围 :
•机器人避障、自动控制
•水平测距
•停车管理系统
•物体接近与存在察觉
本教程测试环境:
权限要求:
注:其他 Linux 发行版理论上也可用,但未经测试
注意:需要联网下载安装
安装必要的编译工具:
# 更新软件包列表(需要联网)
sudo apt update
# 安装编译工具链(包含 gcc, g++, make 等)
sudo apt install build-essential
验证安装:
# 检查 gcc 版本
gcc --version
# 检查 make 版本
make --version
# 解压压缩包
test@test-K1-SBC:~$ unzip K1-UART-Package.zip
Archive: K1-UART-Package.zip
inflating: fhl-api_1.0.0_amd64.deb
inflating: Installation.txt
inflating: fhl_ultrasonic.c
inflating: Makefile
# 安装 FHLAPI 支持包
sudo dpkg -i fhl-api_1.0.0_amd64.deb
# 编译可执行程序
test@test-K1-SBC:~/UART$ make
gcc -Wall -O2 -I/usr/include/fhl_api -c fhl_ultrasonic.c -o fhl_ultrasonic.o
gcc -Wall -O2 -I/usr/include/fhl_api -o fhl_ultrasonic fhl_ultrasonic.o -lfhl_api
test@test-K1-SBC:~/UART$ ls
Makefile fhl_ultrasonic fhl_ultrasonic.c fhl-api_1.0.0_amd64.deb Installation.txt
编译成功后会生成:
fhl_ultrasonic - 超声波传感器 控制程序test@test-K1-SBC:~/UART$ sudo ./fhl_ultrasonic /dev/ttyS0
[sudo] password for test:
========================================
Simple FHL Ultrasonic Test
========================================
Device: /dev/ttyS0
Baudrate: 115200
[1] Initializing FHL library...
[2026-10-12 14:44:50.684] [INFO] [Thread: 139909283796800] Extracted parent path (excluding file name): /usr/lib/x86_64-linux-gnu
[2026-10-12 14:44:50.684] [INFO] [Thread: 139909283796800] myLibPath is OK: /usr/lib/x86_64-linux-gnu
[2026-10-12 14:44:50.684] [INFO] [Thread: 139909283796800] Set board type: K1 SBC
[2026-10-12 14:44:50.686] [INFO] [Thread: 139909283796800] boardInfo: K1 BSP info., boardName=K1, boardVer=V1
[2026-10-12 14:44:50.687] [INFO] [Thread: 139909283796800] device node /dev/spidev0.0 exists
[2026-10-12 14:44:50.687] [INFO] [Thread: 139909283796800] FhlAPI Version is: 0x10000
[2026-10-12 14:44:50.687] [INFO] [Thread: 139909283796800] FhlAPI Build_Info is: FhlAPI v1.0.0 b20260930
[2026-10-12 14:44:50.687] [INFO] [Thread: 139909283796800] FhlAPI_Init OK==========> end time=UTC:2026-12-01 23:59:59
OK
[2] Opening UART...
[2026-10-12 14:44:50.687] [INFO] [Thread: 139909283796800] Open serial port: /dev/ttyS0, baud_rate: 115200, data_bits: 8, parity: N, stop_bits: 1
[2026-10-12 14:44:50.688] [INFO] [Thread: 139909283796800] Open serial port success: /dev/ttyS0, baud_rate: 115200
OK: uart_handle = 1
[3] Reading data (Press Ctrl+C to stop):
Distance: 113 mm ( 11.3 cm)
Distance: 113 mm ( 11.3 cm)
Distance: 110 mm ( 11.0 cm)
Distance: 94 mm ( 9.4 cm)
Distance: 57 mm ( 5.7 cm)
Distance: 57 mm ( 5.7 cm)
Distance: 57 mm ( 5.7 cm)
Distance: 93 mm ( 9.3 cm)
Distance: 93 mm ( 9.3 cm)
Distance: 93 mm ( 9.3 cm)
-> Stats: success 10, errors 0
Distance: 55 mm ( 5.5 cm)
Distance: 51 mm ( 5.1 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 57 mm ( 5.7 cm)
Distance: 769 mm ( 76.9 cm)
Distance: 769 mm ( 76.9 cm)
-> Stats: success 20, errors 0
Distance: 769 mm ( 76.9 cm)
Distance: 757 mm ( 75.7 cm)
Distance: 633 mm ( 63.3 cm)
Distance: 633 mm ( 63.3 cm)
Distance: 628 mm ( 62.8 cm)
Distance: 628 mm ( 62.8 cm)
Distance: 230 mm ( 23.0 cm)
Distance: 230 mm ( 23.0 cm)
Distance: 188 mm ( 18.8 cm)
Distance: 155 mm ( 15.5 cm)
-> Stats: success 30, errors 0
Distance: 155 mm ( 15.5 cm)
Distance: 155 mm ( 15.5 cm)
Distance: 155 mm ( 15.5 cm)
Distance: 184 mm ( 18.4 cm)
Distance: 216 mm ( 21.6 cm)
Distance: 216 mm ( 21.6 cm)
Distance: 417 mm ( 41.7 cm)
Distance: 417 mm ( 41.7 cm)
Distance: 292 mm ( 29.2 cm)
Distance: 292 mm ( 29.2 cm)
-> Stats: success 40, errors 0
Distance: 360 mm ( 36.0 cm)
Distance: 292 mm ( 29.2 cm)
Distance: 360 mm ( 36.0 cm)
Distance: 361 mm ( 36.1 cm)
Distance: 361 mm ( 36.1 cm)
Distance: 253 mm ( 25.3 cm)
Distance: 253 mm ( 25.3 cm)
Distance: 183 mm ( 18.3 cm)
Distance: 146 mm ( 14.6 cm)
Distance: 88 mm ( 8.8 cm)
-> Stats: success 50, errors 0
Distance: 88 mm ( 8.8 cm)
Distance: 71 mm ( 7.1 cm)
Distance: 64 mm ( 6.4 cm)
Distance: 56 mm ( 5.6 cm)
Distance: 56 mm ( 5.6 cm)
Distance: 58 mm ( 5.8 cm)
Distance: 58 mm ( 5.8 cm)
Distance: 58 mm ( 5.8 cm)
Distance: 59 mm ( 5.9 cm)
Distance: 59 mm ( 5.9 cm)
-> Stats: success 60, errors 0
Distance: 61 mm ( 6.1 cm)
Distance: 62 mm ( 6.2 cm)
Distance: 62 mm ( 6.2 cm)
Distance: 62 mm ( 6.2 cm)
Distance: 57 mm ( 5.7 cm)
Distance: 48 mm ( 4.8 cm)
Distance: 44 mm ( 4.4 cm)
Distance: 40 mm ( 4.0 cm)
Distance: 36 mm ( 3.6 cm)
Distance: 32 mm ( 3.2 cm)
-> Stats: success 70, errors 0
Distance: 31 mm ( 3.1 cm)
Distance: 31 mm ( 3.1 cm)
Distance: 31 mm ( 3.1 cm)
Distance: 50 mm ( 5.0 cm)
Distance: 88 mm ( 8.8 cm)
Distance: 94 mm ( 9.4 cm)
Distance: 105 mm ( 10.5 cm)
Distance: 110 mm ( 11.0 cm)
Distance: 129 mm ( 12.9 cm)
Distance: 129 mm ( 12.9 cm)
-> Stats: success 80, errors 0
Distance: 130 mm ( 13.0 cm)
Distance: 131 mm ( 13.1 cm)
Distance: 131 mm ( 13.1 cm)
Distance: 131 mm ( 13.1 cm)
Distance: 94 mm ( 9.4 cm)
Distance: 82 mm ( 8.2 cm)
Distance: 33 mm ( 3.3 cm)
Distance: 22 mm ( 2.2 cm)
Distance: 18 mm ( 1.8 cm)
Distance: 12 mm ( 1.2 cm)
-> Stats: success 90, errors 0
Distance: 10 mm ( 1.0 cm)
Distance: 9 mm ( 0.9 cm)
Distance: 10 mm ( 1.0 cm)
Distance: 10 mm ( 1.0 cm)
Distance: 10 mm ( 1.0 cm)
Distance: 10 mm ( 1.0 cm)
Distance: 10 mm ( 1.0 cm)
Distance: 11 mm ( 1.1 cm)
Distance: 16 mm ( 1.6 cm)
Distance: 18 mm ( 1.8 cm)
-> Stats: success 100, errors 3
................Distance: 0 mm ( 0.0 cm)
Distance: 270 mm ( 27.0 cm)
Distance: 270 mm ( 27.0 cm)
Distance: 270 mm ( 27.0 cm)
Distance: 233 mm ( 23.3 cm)
Distance: 229 mm ( 22.9 cm)
..Distance: 0 mm ( 0.0 cm)
Distance: 0 mm ( 0.0 cm)
Distance: 17 mm ( 1.7 cm)
Distance: 25 mm ( 2.5 cm)
-> Stats: success 110, errors 6
......Distance: 0 mm ( 0.0 cm)
Distance: 0 mm ( 0.0 cm)
Distance: 234 mm ( 23.4 cm)
Distance: 234 mm ( 23.4 cm)
Distance: 234 mm ( 23.4 cm)
Distance: 235 mm ( 23.5 cm)
Distance: 235 mm ( 23.5 cm)
Distance: 236 mm ( 23.6 cm)
Distance: 236 mm ( 23.6 cm)
Distance: 237 mm ( 23.7 cm)
-> Stats: success 120, errors 7
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 228 mm ( 22.8 cm)
Distance: 211 mm ( 21.1 cm)
Distance: 183 mm ( 18.3 cm)
Distance: 166 mm ( 16.6 cm)
Distance: 165 mm ( 16.5 cm)
Distance: 137 mm ( 13.7 cm)
Distance: 131 mm ( 13.1 cm)
-> Stats: success 130, errors 7
Distance: 107 mm ( 10.7 cm)
Distance: 101 mm ( 10.1 cm)
Distance: 96 mm ( 9.6 cm)
Distance: 94 mm ( 9.4 cm)
Distance: 93 mm ( 9.3 cm)
Distance: 89 mm ( 8.9 cm)
Distance: 87 mm ( 8.7 cm)
Distance: 84 mm ( 8.4 cm)
Distance: 75 mm ( 7.5 cm)
Distance: 70 mm ( 7.0 cm)
-> Stats: success 140, errors 7
Distance: 63 mm ( 6.3 cm)
Distance: 58 mm ( 5.8 cm)
Distance: 51 mm ( 5.1 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 48 mm ( 4.8 cm)
Distance: 44 mm ( 4.4 cm)
Distance: 37 mm ( 3.7 cm)
Distance: 36 mm ( 3.6 cm)
Distance: 36 mm ( 3.6 cm)
Distance: 36 mm ( 3.6 cm)
-> Stats: success 150, errors 7
Distance: 36 mm ( 3.6 cm)
Distance: 39 mm ( 3.9 cm)
Distance: 39 mm ( 3.9 cm)
Distance: 42 mm ( 4.2 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 49 mm ( 4.9 cm)
Distance: 71 mm ( 7.1 cm)
Distance: 92 mm ( 9.2 cm)
Distance: 111 mm ( 11.1 cm)
Distance: 147 mm ( 14.7 cm)
-> Stats: success 160, errors 7
Distance: 173 mm ( 17.3 cm)
Distance: 194 mm ( 19.4 cm)
Distance: 216 mm ( 21.6 cm)
Distance: 235 mm ( 23.5 cm)
Distance: 236 mm ( 23.6 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
Distance: 237 mm ( 23.7 cm)
-> Stats: success 170, errors 7
Distance: 237 mm ( 23.7 cm)
Distance: 239 mm ( 23.9 cm)
Distance: 245 mm ( 24.5 cm)
Distance: 245 mm ( 24.5 cm)
.Distance: 0 mm ( 0.0 cm)
Distance: 0 mm ( 0.0 cm)
Distance: 246 mm ( 24.6 cm)
....Distance: 0 mm ( 0.0 cm)
Distance: 0 mm ( 0.0 cm)
Distance: 129 mm ( 12.9 cm)
-> Stats: success 180, errors 9
Distance: 141 mm ( 14.1 cm)
Distance: 141 mm ( 14.1 cm)
Distance: 141 mm ( 14.1 cm)
#执行过程中可按 Ctrl + C 停止程序
^C
Exiting...
[4] Statistics:
Valid reads: 183
Errors: 9
Success rate: 95.3%
[5] Closing UART...
[2026-10-12 14:45:37.200] [INFO] [Thread: 139909283792640] Uart::read_thread_func() exit
OK
[6] De-initializing FHL library...
[2026-10-12 14:45:37.202] [INFO] [Thread: 139909283796800] FhlAPI_UnInit OK <============ end time=UTC:2026-12-01 23:59:59
OK
Program exited normally