linux虚拟串口什么实现(虚拟机串口设置方法)

1.python 工具

#coding = utf-8import ptyimport osimport selectdef
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, master2if __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掉即可。

linux虚拟串口什么实现(虚拟机串口设置方法)

2.Ubuntu下 cutecom 图像界面串口调试工具

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

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

3.  python 编写测试程序

  (1)1.安装pyserial(安装 serial module)

这里区分python2和 python3:

sudo apt install python-pip //python2sudo apt install python3-pip
//python3

  (2)然后通过:

pip install pyserial //python2pip3 install pyserial //python3

  (3)测试程序

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

发表评论

登录后才能评论