UART 串口实战

本篇目标:除了《开箱接线与上电登录》用过的”调试串口”,学会使用板子上另外两路用户串口(ttyAS2 / ttyAS8)做设备通信、模块对接、回环测试。
所有事实以本 SDK 最终拼接后的设备树为准。


板子上有几路串口

串口(UART)是嵌入式里最常用、最稳的通信接口,用来接 GPS、4G 模块、传感器、调试另一个板子等。本板最终使能的串口:

串口 设备名 引脚 用途
uart0 ttyAS0 PB9(TX) / PB10(RX) 调试串口(《开箱接线与上电登录》已用,登录用),波特率 115200
uart2 ttyAS2 PB0 / PB1 用户串口
uart8 ttyAS8 PB4 / PB5 用户串口(已转 485)

修改设备树

使用 PB0 和 PB1 作为 uart2 功能
相关配置 device/config/chips/t153/configs/t153_nand_base/linux-5.10-origin/board.dts 确认引脚复用和 uart2 定义

&pio {
    uart2_pins_active: uart2_pins@0 {
        pins = "PB0", "PB1";
        function = "uart2";
    };

    uart2_pins_sleep: uart2_pins@1 {
        pins = "PB0", "PB1";
        function = "io_disabled";
    };
}

&uart2 {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&uart2_pins_active>;
    pinctrl-1 = <&uart2_pins_sleep>;
    status = "okay";
};

如果有存在

&uart2 {
    status = "disabled";
};

就直接删除

接线(和调试串口一样:交叉连接)

以 uart2(ttyAS2) 为例。先按底板丝印 / 《硬件设计指南》引脚定义找到 uart2 的 PB0、PB1、GND 三个脚,然后:

你的设备(如 USB 转串口/另一块板) 开发板 uart2
TX RX
RX TX
GND GND

同样不要接 VCC。务必交叉(你的 TX 接板子 RX),接反只是收不到数据。


用 microcom 打开串口

板上自己也可以当”串口终端”去连外部模块;更常见是:电脑用串口工具连板子的用户串口。下面以板子作为一端、电脑为另一端演示。

在电脑侧串口助手(如 sscom)连上 uart2 对应的 USB 转串口,设置 115200 8N1 无流控。

在板子侧用 microcom 打开 ttyAS2:

# 板子上
microcom -s 115200 /dev/ttyAS2
# 按ctrl+X  退出

打开后,板子这端打字,电脑那端应能收到;反之亦然。


回环测试(不接外部设备也能验证串口好坏)

找不到外部设备时,可以把板子 uart2 的 TX 和 RX 短接(用杜邦线把这两个脚连起来),然后自发自收:

# 后台读 ttyAS2
cat /dev/ttyAS2 &
# 发送
echo "loop test" > /dev/ttyAS2
loop test        # 立刻回显出来,说明串口收发正常

能看到自己发的内容被收回来,就证明 uart2 硬件和驱动都 OK。


波特率上限(重要)

UART 驱动支持的最高波特率为 3 Mbps(3000000),合法波特率集合为:

115200 / 230400 / 460800 / 921600 / 1500000 / 3000000

设置高波特率:

stty -F /dev/ttyAS2 3000000

⚠️ 高波特率(尤其 1.5M/3M)对线材、电平、时钟精度很敏感,工业现场建议先实测误码率/稳定性,必要时降速。不是所有 USB 转串口模块都稳上 3M。关于 3Mbps 上限:UART 时钟为 32MHz(CLK_APB_UART),分频约束 32M/(16×2M)=1 整数分频才精确,更高波特率会误差过大,故驱动上限设为 3Mbps。


排障

现象 处理
/dev/ttyAS2 不存在 该串口未使能;确认设备树 uart2 status=okay 并重新烧录
两端通信乱码 波特率/数据位/流控不一致;统一 115200 8N1 无流控
完全没反应 TX/RX 是否交叉、GND 是否共地、线是否接触好
高波特率丢数据 线材/模块不支持;降速测试

下一篇

《I2C 实战》:板子 I2C 叫 TWI,出厂只使能 twi2,上面挂着 RTC、触摸屏、音频芯片,用 i2c-tools 怎么看、怎么读。

作者:Mai  创建时间:2026-10-20 16:47
最后编辑:陈柏林  更新时间:2026-11-05 14:56
上一篇:
下一篇: