Skip to main content
UART(通用异步收发传输器)使用起始位和停止位而非时钟信号来异步传输数据。接收端 UART 以称为波特率的特定频率读取数据位。

关键参数

  • 波特率 — 通信速度(每秒比特数)
  • 起始/停止位 — 帧定界符
  • 奇偶校验位 — 可选的错误检查
  • 数据位 — 每帧 5–9 位
  • 流控制 — 通过 CTS/RTS 进行硬件握手

各子系统的传输模式

接口组件

设备树源文件

API

软件配置

Linux 设备树示例

4 线 UART(带流控制):
GPIO pinctrl:
QUPAC 访问控制:

内核配置

编辑 kernel_platform/kernel/arch/arm64/configs/qcom_defconfig:
在设备树中启用 UART 节点:

验证

1

验证 UART 设备注册

2

配置 UART 设置

3

运行回环测试

打开两个 SSH 终端。终端 1(写入):
终端 2(读取):
预期输出:Hello UART

调试

启用调试日志

故障排除

  • 验证设备树 status 为 "ok"
  • 确认内核配置中包含 CONFIG_SERIAL_QCOM_GENI=y
  • 检查 GPIO 引脚配置和 QUPAC 访问控制设置
  • 验证两端的波特率一致
  • 检查流控制配置(CTS/RTS)
  • 先使用回环模式进行测试
  • 对于高速传输,从 FIFO 模式切换到 DMA 模式
  • 检查中断统计信息:cat /proc/interrupts | grep uart
  • 检查电源管理:cat /sys/kernel/debug/pm_genpd/pm_genpd_summary

调试检查清单

  • 内核配置包含 CONFIG_SERIAL_QCOM_GENI=y
  • UART 节点的设备树 status 设置为 "ok"
  • GPIO 引脚已正确配置和映射
  • QUPAC 访问控制已正确配置
  • 两端的波特率一致
  • 流控制设置一致
  • 设备文件权限正确

资源