linux 命令行操作串口

本文详细介绍了在Linux环境下如何操作串口,包括获取串口号、配置串口属性(如波特率、校验位)、数据读写、数据解析、后台运行以及数据可视化。通过使用stty命令和minicom工具,可以实现串口通信的设置和管理。同时,提到了awk工具用于解析串口数据,并推荐了KST软件进行数据绘制。文章还提供了minicom的退出方法,以及stty命令的参数详解,帮助读者深入理解串口通信和Linux终端设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获取串口号

在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现。也就是说我们可以用访问文本文件的命令来访问它们。

a. 一般串口都是以/dev/ttyS#的格式显示,所以第一个连接的串口就是/dev/ttyS0,第二个连接的串口就是/dev/ttyS1…以此类推。

b. USB转串口适配,没有额外驱动,它们会显示为/dev/ttyUSB#,如/dev/ttyUSB0

2. 配置串口属性(stty命令)

我们可以使用stty命令来更改配置串口属性(详情查看”man stty”),比如我们设置串口/dev/ttyS0波特率为57600和odd parity,命令如下stty -F /dev/ttyS0 57600 parodd

stty -F /dev/ttyAS4 ispeed 1500000 ospeed 1500000 cs8

3. 串口数据读写操作

使用echo向串口发送数据,如echo “command” > /dev/ttyUSB0
可以使用cat来读取串口中的数据,如cat /dev/ttyUSB0
读取数据并保存到txt文本文件中,如cat /dev/ttyUSB0 > file.txt

4. 解析数据

说到解析数据,我们可以使用一个强大的文本分析工具awk,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
下面使用gawk举个栗子,在终端以H:M:S格式输出当前时间和来自串口的每一行前3个字符,命令如下:cat /dev/ttyUSB0 | gawk ’{print strftime(“%T”), substr($1 ,1,3)}’

5. 后台运行

可以讲串口数据读写操作设置为后台进行,通过一个简单命令或者shell 脚本就可以实现。命令可以用nohup。即使关闭终端或者注销账户,进程还是在进行着,比如nohup cat /dev/ttyS0 | gawk ’{substr($1 ,1,3)}’ > result.txt
使用下面命令可以删除进程,但是会删除所有的cat进程。killall cat
我们可以用“ps ax”来查看当前运行的进程,选择你要删除的,记下PID,删除即可,如下kill -9 PID

6. 绘制数据

如果你希望绘制实时获取到的数据,我这里推荐一个软件叫做KST(),它能够实时的获取text文件数据并绘制出来,可以浏览官网查看详细说明。

原文链接:http://blog.chinaunix.net/uid-27875-id-5846415.html

Linux stty命令

stty是linux下改变和打印终端设置的常用命令。

一、参数:

1.打印终端行设置

-a,–all 以人可读的方式打印所有当前设置;-a参数比单独的stty命令输出的终端信息更详细

-g,–save 以stty可读的方式打印当前所有设置

-F,–file=DEVICE 打开并使用特定的设备((DEVICE)以代替标准输入(stdin)

–help 显示帮助并退出

–version 显示版本并退出

二:用法

  1. stty size 打印终端行数和列数

2,在命令行下禁止输出小写
stty olcuc #开启
stty -olcuc#恢复

3,打印出终端的行数和列数
stty size

4,改变ctrl+D的方法:
stty eof “string”
系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变!

5,屏蔽显示
stty -echo #禁止回显
stty echo #打开回显
测试方法:
stty -echo;read;stty echo;read

6,忽略回车符
stty igncr #开启
stty -igncr#恢复

7 .利用它设置我们的串口打印操作信息。
stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb -echo
解释:通过stty设置/dev/ttyS0串口, 波特率为115200 ,数据位cs8,奇偶校验位-parenb,停止位-cstopb,同时-echo禁止终端回显。

「1、显示某个串口参数信息」:stty -F /dev/ttySTM6 -a

「2、设置某个串口参数信息:」

「2.1 7位数据位,无校验,1位停止位,无回显」

stty -F /dev/ttySTM6 speed 115200 cs7 -parenb -cstopb -echo

「 2.2 串口ttySTM6 波特率为115200,8位数据位,1位停止位,偶数校验位

stty -F /dev/ttyS0 speed 115200 cs8 -cstopb parenb -parodd

「3、串口发送数据:」echo “1234456” > /dev/ttySTM6

「4、显示串口接收数据:」cat /dev/ttySTM6 &(后台)

「5、stty命令功能参数」

「 5.1 校验位」

parenb:使终端进行奇偶校验,-parenb则是禁止校验;
-parodd 偶数校验
parodd 奇数校验
「 5.2 数据位」
cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;
「 5.3 波特率」
speed 波特率:设置波特率
「 5.4 停止位」
cstopb和-cstopb分别设置两个或一个停止位;

Linux下minicom操作

https://blog.csdn.net/m0_37752567/article/details/80833215

minicom -s 进入minicom配置项

Linux minicom 软件退出方法

https://www.cnblogs.com/zhtook/p/13124340.html

在使用终端输入 minicom 进入传输时,是无法直接退出的,需要使用以下方法退出。

1) 使用Ctrl+a 进入设置状态

2)按z进入设置菜单

(1)S键:发送文件到目标系统中;
(2)W键:自动卷屏。当显示的内容超过一行之後,自动将後面的内容换行。这个功能在查看内核的啓动信息时很有用。
(3)C键:清除屏幕的显示内容;
(4)B键:浏览minicom的历史显示;
(5)X键:退出mInicom,会提示确认退出。

### 配置和使用Linux命令行下的串口 #### 了解设备名称 在Linux系统中,串口通常被识别为`/dev/ttyS*`或`/dev/ttyUSB*`。对于内置的UART端口,通常是`/dev/ttyS0`, `/dev/ttyS1`等;而对于通过USB连接的串口适配器,则可能是`/dev/ttyUSB0`, `/dev/ttyUSB1`等[^1]。 #### 安装必要的工具 为了能够方便地操作串口,在大多数情况下需要安装一些额外的应用程序包,比如`minicom`或者`screen`这样的终端仿真软件来发送接收数据流。可以通过系统的包管理器来进行安装: ```bash sudo apt-get install minicom screen ``` 上述命令适用于基于Debian的发行版如Ubuntu; 对于其他类型的Linux发行版本可能需要调整相应的包管理指令[^2]。 #### 设置权限 默认情况下普通用户是没有访问这些特殊文件(即串口设备节点)权限的, 所以如果尝试直接打开它们会遇到权限不足的问题。解决办法之一就是把当前登录使用的用户名加入到拥有相应读写权限的组里去,例如`dialout`: ```bash sudo usermod -aG dialout $USER ``` 执行这条语句之后需重新启动计算机使更改生效[^3]。 #### 使用Minicom配置串口参数 一旦完成了前面几步准备工作就可以利用像`minicom`这类专门用于调试串行通信接口的小型实用程序来进行更详细的设置了。首次运行前建议先初始化配置向导: ```bash sudo minicom -s ``` 这将弹出一个菜单界面允许修改波特率、奇偶校验位数等各种属性直到满足需求为止。完成编辑后记得保存退出即可[^4]。 #### 测试连通性 最后一步便是验证整个过程是否成功建立起了有效的通讯链路。可以采用简单的回声测试方法——开启两个不同的shell窗口分别作为客户端和服务端互相传递消息看看能否正常工作。当然也可以借助之前提到过的`screen`命令快速搭建起临时性的TTY会话环境而无需担心复杂的图形化界面干扰视线: ```bash screen /dev/ttyUSB0 9600,cs8,-cstopb,-parenb ``` 这里假设目标硬件挂载到了位置`/dev/ttyUSB0`上并且协商好的传输速率是每秒9600比特无流量控制选项[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值