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 怎么看、怎么读。
最后编辑:陈柏林 更新时间:2026-11-05 14:56