python虚拟串口_Ubuntu 下使用虚拟串口进行开发测试

原标题: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 图像界面串口调试工具

(1)终端下载命令:sudo apt-get install cutecom

(2)通过终端打开软件:sudo cutecom (需要root权限,否则无法打开串口)

(3)在 Device 中填写上边生成的虚拟串口号 /dev/pts/24 和 /dev/pts/25, Input 中输入文字 ,点击回车发送测试

3.  python 编写测试程序

(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) #数据写回

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-08/153412.htm返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值