UART
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种广泛用于串行通信的硬件接口协议,用于在两个设备之间异步传输数据(无需时钟信号同步,仅通过约定的波特率等参数实现通信)。它是嵌入式系统、单片机、计算机与外设(如传感器、蓝牙模块、GPS 模块等)之间常用的通信方式。
UART位置
UART 一般位于扩展引脚,通过扩展引脚图查看扩展引脚中带有 UART 标志的引脚。
扩展引脚上的 UART 接口与设备文件的对应关系为:UART 编号直接对应
/dev/ttyS后的数字,例如 UART6 对应设备文件/dev/ttyS6。
K7扩展引脚

K7引脚电压

注意: K7的UART默认配置的都是1.8V的电平,不能与3.3V电平的UART通讯,请确定好后使用。
硬件连接
基本信号线(核心连接)
UART 通信最少需要 3 根线即可工作(全双工通信):
TXD(Transmit Data):发送数据端,设备通过此线向外发送数据。
RXD(Receive Data):接收数据端,设备通过此线接收外部数据。
GND(Ground):地线,用于保证两个设备的电平参考一致(共地)。
连接原则
两个设备之间需要交叉连接:
设备 A 的 TXD → 设备 B 的 RXD
设备 A 的 RXD → 设备 B 的 TXD
设备 A 的 GND → 设备 B 的 GND(必须共地,否则可能无法通信或数据错乱)
回环测试
软件默认已配置 UART8,下面以 UART8 进行示例说明。
RX、TX 进行硬件短接。
microcom 指定 UART8 进行通讯
示例:
回环测试下,microcom 能够同时接收输出的字符
常用测试方式
Android SerialPort API
“Android SerialPort API” 是早期开源的 Android 串口通信工具类项目。其核心功能是为 Android 设备提供串口(如 RS232、UART)通信的封装接口,解决 Android 系统原生缺乏串口操作统一 API 的问题,方便开发者实现设备与外部硬件(如传感器、单片机、POS 机等)的串口数据交互。
网址链接
网盘路径
microcom
microcom 是一款轻量级的串口通信工具,常用于嵌入式系统和Linux环境下的串口调试,支持通过命令行配置串口参数并进行数据收发。以下是其基本用法和常见场景:
源码
一、安装 microcom
在 Ubuntu/Debian 系统中,可直接通过包管理器安装:
在嵌入式系统(如 OpenWRT)中,通常已预装,若未安装可通过系统包管理工具安装(如 opkg install microcom)。
二、基本用法
连接串口设备
基本语法:
示例:连接到 /dev/ttyUSB0 串口(常见的USB转串口设备):
默认参数:波特率 9600、8位数据位、1位停止位、无校验(8N1)。
自定义串口参数
若设备使用非默认参数(如波特率 115200),需通过 -s 选项指定:
其他常用选项:
-p < parity >:设置校验位(n无校验,o奇校验,e偶校验),默认n;-8:强制使用8位数据位(默认);-t:设置超时时间(单位:毫秒),如-t 1000表示超时1秒。
示例(完整配置):
三、使用技巧
退出 microcom 按
Ctrl+q组合键退出当前连接(注意:不是Ctrl+c,后者会被转发到串口设备)。数据收发 进入
microcom交互界面后,输入的内容会直接发送到串口设备,设备返回的数据会实时显示在终端上,适合调试传感器、单片机等设备的串口输出。查看可用串口 若不确定设备路径,可通过以下命令列出系统中的串口设备:
四、常见问题
权限不足 提示
Permission denied时,需确保当前用户有权限访问串口设备。可将用户加入dialout组(Ubuntu/Debian):设备被占用 提示
Device or resource busy时,说明串口已被其他程序占用(如minicom、screen等),需先关闭占用程序。乱码问题 通常是波特率、校验位等参数与设备不匹配导致,需确认设备的串口参数并重新配置。
microcom 以简洁著称,适合快速调试;若需更复杂的功能(如日志记录、宏定义),可考虑 minicom 或 screen 工具。通过 man microcom 可查看完整选项说明。
minicom
minicom 是一款功能强大的串口通信工具,支持更丰富的配置和操作(如保存配置、文件传输等),比 microcom 更适合复杂的串口调试场景。以下是其核心用法:
源码
一、安装 minicom
在 Ubuntu/Debian 系统中安装:
二、基本配置(首次使用必做)
启动配置界面:
核心配置项(通过方向键选择,回车进入):
Serial port setup(串口设置): 按提示修改以下参数(按对应字母进入编辑):
A:串口设备路径(如/dev/ttyUSB0或/dev/ttyS0)E:波特率/数据位/停止位(如115200 8N1,即波特率115200、8数据位、无校验、1停止位)F:硬件流控(默认No,即关闭) 完成后按Enter返回,再按Esc退出当前菜单。
Save setup as dfl(保存为默认配置): 后续直接输入
minicom即可使用此配置。Exit(退出配置界面,进入串口交互模式)
三、基本操作
启动 minicom(使用默认配置):
若需加载其他配置文件(如
myconfig):退出 minicom: 按
Ctrl+A进入命令模式,再按Q并确认(Yes)。常用快捷键(先按
Ctrl+A,再按以下键):Z:显示所有快捷键帮助O:临时打开配置界面W:自动换行(解决长文本换行问题)L:日志记录(保存串口输出到文件)S:发送文件(支持 Xmodem、Ymodem 等协议)R:接收文件
四、高级用法
文件传输:
发送方:
Ctrl+A→S→ 选择传输协议(如xmodem)→ 选择本地文件。接收方:确保目标设备已进入接收模式,在 minicom 中
Ctrl+A→R→ 选择相同协议。
多配置管理:
保存新配置:
sudo minicom -s→ 配置完成后选择Save setup as <name>(如uart1)。加载配置:
minicom uart1。
权限问题解决: 若提示无权限访问串口,将用户加入
dialout组(无需每次用sudo):
五、常见问题
乱码:检查波特率、数据位等参数是否与设备匹配(
Ctrl+A→O可临时修改)。无法输入:确认硬件流控是否关闭(配置中
Hardware Flow Control设为No)。设备被占用:关闭其他占用串口的程序(如
screen、microcom),或重启设备。
通过 man minicom 可查看完整手册。minicom 适合需要频繁调试不同串口设备或进行文件传输的场景,配置一次后可重复使用,效率较高。
stty
stty 是 Linux 系统中用于配置和查询终端设备(如终端、串口等)参数的命令行工具,全称为 "set tty"。它可以调整终端的输入输出模式、控制字符、波特率等设置,常用于终端行为定制和串口调试。
源码:
一、基本用法
查看终端参数
修改终端参数
(1)控制输入回显
(2)配置串口参数(波特率、数据位等)
(3)修改控制字符(如中断、退出键)
(4)设置终端尺寸
重置终端配置
当终端因异常设置(如乱码、无法输入)导致无法正常使用时,可重置为默认状态:
二、常用参数说明
-a
显示所有终端参数(详细模式)
-F <设备路径>
指定操作的设备文件(默认是当前终端 /dev/tty,串口常用 /dev/ttyS0 等)
echo/-echo
开启/关闭输入回显
intr <字符>
设置中断字符(默认 ^C,即 Ctrl+C)
quit <字符>
设置退出字符(默认 ^\,即 Ctrl+\)
rows <n> cols <m>
设置终端行数为 n,列数为 m
speed <速率>
设置波特率(如 9600、115200)
cs8
设置 8 位数据位(cs7 为 7 位)
parenb/-parenb
启用/禁用校验位(配合 parodd 可设置奇校验)
cstopb/-cstopb
启用 2 停止位/禁用(即 1 停止位)
sane
恢复终端默认配置
三、实际应用场景
串口调试:配置单片机、传感器等设备的串口通信参数(波特率、数据位等)。 示例:与波特率为 115200 的设备通信
脚本中隐藏输入:如读取密码时关闭回显
修复终端乱码:当终端因异常设置导致乱码时,执行
stty sane重置。
通过 man stty 可查看完整的参数说明和更多用法示例。
常见问题
不同电平有什么区别,为什么不能通讯?
电平标准不匹配
1.8V UART的逻辑电平:
高电平(逻辑1):通常需要输出≥1.35V(根据LVCMOS/LVTTL标准)。
低电平(逻辑0):通常需要输出≤0.45V。
3.3V UART的逻辑电平:
高电平(逻辑1):需要输入≥2.0V才能被识别为有效高电平。
低电平(逻辑0):需要输入≤0.8V才能被识别为有效低电平。
要实现1.8V和3.3V UART的通信,必须通过电平转换电路进行适配。以下是常见方案:
使用双向电平转换器(推荐)
芯片示例:TXB0108、TXS0108E、74LVC1T45等。
原理:
1.8V侧与3.3V侧分别供电(如1.8V和3.3V)。
芯片根据电源电压自动调整输出电平,确保信号兼容性。
Last updated