3. UART 串口回环测试
实验目的
学习在 Linux 应用层通过 C 语言操作串口,掌握 UART 通信参数(波特率、数据位等)的配置,并通过硬件短接回环验证串口底层驱动的收发能力。
硬件准备与特别说明
硬件短接:请使用一根杜邦线,短接 40 Pin 排针的 第 8 针(UART2_TX) 与 第 10 针(UART2_RX)。
特别说明:出厂默认固件未开启 UART2。若在终端输入 ls /dev/ttyAS* 未发现 ttyAS2,请参考《BSP 开发指南》修改板级设备树(board.dts),将 &uart2 的 status 改为 "okay",并确保引脚复用为 PB0/PB1,重新编译内核并烧录。
源码获取
请在网盘 软件资料/demo/base-demos/uart_rw 目录下获取 uart_rw.c。
核心代码解析
本程序利用 termios 结构体将串口配置为 115200 波特率、8 位数据位、无校验、1 位停止位。在回环测试中,程序生成随机数据通过 write() 发出,延时后用 read() 读回,并通过 memcmp() 比对数据一致性。
交叉编译
在 Ubuntu 源码目录下执行:
make clean
make CC=arm-linux-gnueabihf-gcc运行程序
将生成的 uart_rw 传至开发板:
scp uart_rw root@192.168.5.10:/root/请根据实际的ip地址进行修改
在开发板终端执行:
chmod +x uart_rw
./uart_rw -d /dev/ttyAS2 -l -s 1024预期现象
终端打印如下信息,证明底层物理链路与数据收发完美一致:
附:底层配置指南 —— 修改设备树开启 UART2
由于出厂默认固件未开启 40 Pin 排针上的 UART2 节点,若需进行串口测试,请按以下步骤修改底层配置并重新编译烧录固件:
定位板级设备树文件
在 SDK 根目录下,找到 T153 核心板的板级设备树文件:
device/config/chips/t153/configs/t153_nand_base/linux-5.10-origin/board.dts
修改 UART2 状态与引脚复用
使用文本编辑器(如 vim 或 nano)打开该文件,进行以下两处修改:
1.开启节点:搜索 &uart2,找到类似以下代码段,确保其 status 为 “okay”,且引脚复用指向 PB0 和 PB1:
&uart2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart2_pins_active>;
pinctrl-1 = <&uart2_pins_sleep>;
status = "okay";
};2.注释覆盖节点:在全文件末尾附近(约 2018 行),全志 SDK 默认添加了一个强制关闭的节点,请将其注释掉或删除:
//&uart2 {
// status = "disabled";
//};3.重新编译内核并打包
回到 SDK 根目录,执行编译脚本:
1.单独编译内核与设备树
./yz_build.sh kernel2.打包完整固件
./yz_build.sh pack烧录验证
将新生成的固件通过全志烧录工具(PhoenixSuit)烧录至开发板。重启后登录终端,执行:
ls /dev/ttyAS*若列表中出现 ttyAS2,则代表底层驱动修改成功,即可使用短接线进行回环测试。
最后编辑:林晓燕 更新时间:2026-11-05 14:56