Ubuntu 下使用虚拟串口进行开发测试
1. python 工具
#coding = utf-8 import pty
import os
import select def mkpty():
master1, slave = pty.openpty()
slaveName1 = os.ttyname(slave)
master2, slave = pty.openpty()
slaveName2 = os.ttyname(slave)
print '\nslave device names: ', slaveName1, slaveName2
return master1, master2 if __name__ == "__main__":
master1, master2 = mkpty()
while True:
rl, wl, el = select.select([master1, master2], [], [], 1)
for master in rl:
data = os.read(master, 128)
print "read %d data." %len(data)
if master == master1:
os.write(master2, data)
else:
os.write(master1, data)
使用方法:
启动:在终端里运行“python mkptych.py&”,这样就可以生成一个基于pty(伪终端)的虚拟端口对,两个设备名会显示在终端里。然后就可以利用这两个设备名在本机上进行虚拟串口之类的调试。
关闭:使用完后用ps查看这个python进程的pid号,然后kill掉即可。

2. Ubuntu下 cutecom 图像界面串口调试工具(参考:https://blog.csdn.net/zhaoqi2617/article/details/72238546)
(1)终端下载命令:sudo apt-get install cutecom
(2)通过终端打开软件:sudo cutecom (需要root权限,否则无法打开串口)
(3)在 Device 中填写上边生成的虚拟串口号 /dev/pts/24 和 /dev/pts/25, Input 中输入文字 ,点击回车发送测试

3. python 编写测试程序
(参考 https://blog.csdn.net/itas109/article/details/78874165 ,https://blog.csdn.net/jiangchao3392/article/details/75107330)
(1)1.安装pyserial(安装 serial module)
这里区分python2和 python3:
sudo apt install python-pip //python2
sudo apt install python3-pip //python3
(2)然后通过:
pip install pyserial //python2
pip3 install pyserial //python3
(3)测试程序
import serial
from time import sleep def recv(serial):
while True:
data = serial.read_all()
if data == '':
continue
else:
break
sleep(0.02)
return data if __name__ == '__main__':
serial = serial.Serial('COM5', 9600, timeout=0.5) #/dev/ttyUSB0
if serial.isOpen() :
print("open success")
else :
print("open failed") while True:
data =recv(serial)
if data != b'' :
print("receive : ",data)
serial.write(data) #数据写回
参考文章: https://blog.csdn.net/a844651990/article/details/80624019
https://blog.csdn.net/haifengid/article/details/51996613
https://blog.csdn.net/itas109/article/details/78874165
注:解决 ImportError: No module named 'serial' 问题
https://blog.csdn.net/jiangchao3392/article/details/75107330
Ubuntu 下使用虚拟串口进行开发测试的更多相关文章
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- 烂泥:ubuntu下vsftpd虚拟用户配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可 ...
- (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤
Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...
- 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境
在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...
- 【转】在Ubuntu下建立Eclipse的Android开发环境
本文将介绍如何建立Ubuntu下基于Eclipse的Android开发环境的方法. 大部分的Android开发者都是使用Eclipse来开发Android,本文将向各位介绍一下建立Ubuntu下基于E ...
- ubuntu下如何安装codeblocks集成开发环境
codeblocks是一个十分优秀的C/C++开发IDE,虽然后起之秀codelite目前来看大有超越之势哦. 不过在ubuntu下安装codeblocks却比较麻烦,不像其他linux发行版,比如s ...
- ubuntu下可用的串口调试工具--cutecom
今天在ubuntu下要用到串口发送16进制数据,百度了很多工具,觉得minicom和cutecom都不错,比较直观是cutecom,所以就介绍下cutecom. 安装: 输入 $ sudo apt-g ...
- 39 Ubuntu下配置python的vscode开发环境
0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...
- ubuntu下创建虚拟python3开发环境
友情链接:ubuntu16.04下安装python3+创建虚拟python3开发环境 1.为什么要创建python3虚拟开发环境? /********************************* ...
随机推荐
- 跨域和jsonp的了解和学习
一.为什么会有跨域问题呢 因为有浏览器的同源策略. 同源:如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具有相同的源.我们也可以把它称为“协议/主机/端口 tuple”,或简单地叫做“ ...
- Gym 100886J Sockets 二分答案 + 贪心
Description standard input/outputStatements Valera has only one electrical socket in his flat. He al ...
- log(A^B) = BlogA
令 x = logA, y = logB, z=log(AB) .2x = A, 2y = B, 2z = AB, 则有 2z = AB = (2x)^(2y) = 2x(2^y) ,有z = x*2 ...
- <linux下extmail服务的搭建>
下载2个软件包: extmail-1.1.0.tar.gz extman-1.1.tar.gz 下载地址:http://www.cpan.org/ 创建extsuite目录 mkdir /va ...
- ABAP ICON
1.输出图标的3种方法 WRITE: / '@09@'. "id WRITE: / icon_yellow_light. "name WRITE: / '@S_TL_Y@'. &q ...
- mysql用户权限操作
mysql用户权限操作1.创建用户mysql -urootcreate database zabbix default charset utf8;grant all on zabbix.* to za ...
- Mysql update后insert造成死锁原因分析及解决
系统中出现死锁的日志如下: ) TRANSACTION: , ACTIVE sec inserting mysql tables , locked LOCK WAIT lock struct(s), ...
- python decorator 用法
https://www.zhihu.com/question/31265857 http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html ...
- mybatis-mybatis-config.xml详细介绍
1.mybatis-config.xml 1.1:配置,配置可以是引入外部文件,也可以是在本文件内写配置 <!-- <properties resource="jdbc.prop ...
- lattice diamond fpga 状态机的理解
比如序列检测101,需要三个状态 :so,s1,s2. 思路:(1)s0状态有两种情况0或1,若为0时在自身打圈,是1时进入s1状态. (2)s1状态有两种0或1,若为1自身打圈,因为1可以作为下次检 ...