文章首发于浩瀚先森博客

1. 获取串口号

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

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

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

2. 配置串口属性

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

stty -F /dev/ttyS0 57600 parodd

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 版本。

详细说明请参考http://www.gnu.org/software/gawk/manual/gawk.pdf

下面使用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(http://kst.kde.org/),它能够实时的获取text文件数据并绘制出来,可以浏览官网查看详细说明。

在Linux中如何使用命令进行RS-232串口通信和数据包解析的更多相关文章

  1. Linux中的历史命令

    Linux中的历史命令一般保存在用户    /root/.bash_history history 选项 历史命令保存文件夹 选项     -c:清空历史命令     -w :把缓存中的历史命令写入历 ...

  2. 关于XShell的常见使用和设置以及Linux中的常见命令.

    本文部分转自:http://sundful.iteye.com/blog/704079 和 http://www.vckai.com/p/5 有时候在XShell中操作的一些命令傻傻的分不清这个命令到 ...

  3. linux中的strings命令简介2

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用 ...

  4. linux中的strings命令简介

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 在linux下搞软件开发的朋友, 几乎没有不知道 ...

  5. linux中的ps命令用法。

    在linux中使用ps命令可以查看有哪些进程在运行和运行的状态.进程是否结束.进程有没有僵尸.哪些进程占用了过多的资源等等. ps命令最常用的是用于监控后台进程的工作情况. 名称:ps 使用权限:所有 ...

  6. linux中的 tar命令的 -C 参数,以及其它一些参数(转)

    linux中的 tar命令的 -C 参数,以及其它一些参数 复制源:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.htmltar命令 ...

  7. Linux故障:linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0"。

    linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0".   ...

  8. Linux 中的 Install命令

    Linux 中的 Install命令 更新时间:2017年09月25日 16:51:45   投稿:mrr   我要评论 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户. ...

  9. Linux 中常用的命令

    Linux中的常用命令: 终端快捷键: Ctrl + a/Home 切换到命令行开始 Ctrl + e/End 切换到命令行末尾 Ctrl + l 清除屏幕内容,效果等同于clear Ctrl + u ...

随机推荐

  1. jQuery实现页面内锚点平滑跳转

    平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以 ...

  2. HTTP 协议整理(转)

    HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家斧正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...

  3. Microsoft Visual C++ Compiler for Python

    Visual C++ |CPython ------------------------------------------- 14.0(2015) |3.5 10.0(2010) |3.3, 3.4 ...

  4. 2014年年度工作总结--IT狂人实录

    2014年也是我人生最重要的一年,她见证了我的成长与蜕变,让我从一个迷茫的旅者踏上一条柳暗花明的路. 春宇之行 从春宇短暂的9个月,却经历常人难以想想的风风雨雨,首先要感谢春宇公司给我带来了安逸宽松的 ...

  5. 触屏touchstart 与 click

    设计效果:当手指点击或触摸红框线menuList之外的部分时,弹框menuList消失. 问题:在优化触屏版的时候发现如图问题,当menuList弹出,手指触摸屏幕向下滑动时,menuList弹框不消 ...

  6. 基于Windows 10平台的PM2.5检测器制作

    本篇文章详细讲解了如何利用SDS011激光式PM2.5传感器.HC-06蓝牙模块和Windows 10设备完成一个简单的PM2.5检测器及其应用程序的开发.该检测器使用蓝牙完成数据输出,方便设备连接, ...

  7. SQL SERVER 2000 迁移后SQL SERVER代理服务启动错误分析

    公司有一个老系统,这个系统所用的数据库是SQL SERVER 2000,它所在的Dell服务器已经运行超过10年了,早已经过了保修服务期,最近几乎每周会出现一次故障,加之5月份另外一台服务器坏了两个硬 ...

  8. SQL SERVER 重组含有特殊字符的索引时遇到“关键字 'with' 附近有语法错误.”

    案例描述 这是在索引重组过程中遇到的有意思的错误案例,搜索了一下也没有看到相关资料,估计我第一个碰到这类错误的人(It's just a joke).具体情况是YourSQLDba在做维护数据库索引时 ...

  9. String与int之间的转换

    原文: http://www.360doc.com/content/10/1215/00/2258566_78225883.shtml

  10. Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...