6. 串口¶
通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART, 是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。
LubanCat-RV06板卡的30pin接口上默认只有1个uart接口

uart |
引脚 |
功能 |
---|---|---|
UART_TX |
8 |
发送信号线 |
UART_RX |
10 |
接收信号线 |
6.1. 检查串口设备¶
1 2 | #执行命令查看终端设备
ls /dev/ttyS*
|
运行结果:
1 2 3 | # ls /dev/ttyS*
/dev/ttyS3
#
|
/dev/ttyS3设备就是30pin排针上的uart接口。
6.2. stty工具¶
stty是Linux下用于设置串口参数的工具,可以设置波特率、数据位、停止位、奇偶校验等参数。
6.2.1. 查看串口配置¶
1 2 | #在板卡的终端执行如下命令
stty -F /dev/ttyS3
|
运行结果:
1 2 3 4 5 6 7 | # stty -F /dev/ttyS3
speed 9600 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -imaxbel
#
|
speed 9600 baud; line = 0; 说明串口波特率为9600,line = 0;表示无奇偶校验位。
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -brkint -imaxbel 为串口配置参数。
6.2.2. 设置串口参数¶
1 2 | #设置通讯速率,其中ispeed为输入速率,ospeed为输出速率
stty -F /dev/ttyS3 ispeed 115200 ospeed 115200
|
运行结果:
1 2 3 4 5 6 7 8 | # stty -F /dev/ttyS3 ispeed 115200 ospeed 115200
# stty -F /dev/ttyS3
speed 115200 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -imaxbel
#
|
可以看到串口波特率已经修改为115200。
6.2.3. 关闭回显¶
1 2 | #关闭回显
stty -F /dev/ttyS3 -echo
|
6.3. 回环测试¶
将TXD和RXD引脚连接起来
1 2 3 4 5 6 7 8 | # 关闭回显
stty -F /dev/ttyS3 -echo
# 读取串口数据
cat /dev/ttyS3 &
# 发送数据
echo "Hello!" > /dev/ttyS3
|
运行结果
1 2 3 4 5 | # stty -F /dev/ttyS3 -echo
# cat /dev/ttyS3 &
[1] 539
# echo "Hello!" > /dev/ttyS3
# Hello!
|
可以看到板卡的终端输出了”Hello!”,说明串口正常工作。
6.4. 串口通讯实验(Shell)¶
6.4.1. 连接串口¶
实验前需要使用串口线或USB转串口线把它与板卡与电脑连接起来。
板子 - 电脑
TXD — RXD
RXD — TXD
GND — GND
1 2 3 4 5 | #在板卡的终端执行如下命令
stty -F /dev/ttyS3
#设置通讯速率,其中ispeed为输入速率,ospeed为输出速率
stty -F /dev/ttyS3 ispeed 115200 ospeed 115200
|
6.4.2. 与Windows主机通讯¶
配置好串口调试助手后,尝试使用如下命令测试发送数据:
1 2 3 4 5 | #在板卡上的终端执行如下指令
#使用echo命令向终端设备文件写入字符串"Hello!"、"I'm lubancat"
echo Hello! > /dev/ttyS3
echo "I'm lubancat" > /dev/ttyS3
#Windows上的串口调试助手会接收到内容
|
如下图:

可以看到,往/dev/ttyS3设备文件写入的内容会直接通过串口线发送至Winodws的主机。
而读取设备文件则可接收Winodws主机发往板卡的内容,可以使用cat命令来读取:
1 2 3 4 5 6 7 | #在板卡上的终端执行如下指令
#使用cat命令读取终端设备文件
cat /dev/ttyS3
#cat命令会等待
#使用串口调试助手发送字符串
#字符串最后必须加回车!
#板卡的终端会输出接收到的内容
|
如下图:
