1. python 工具 使用方法: 啟動:在終端里運行“python mkptych.py&”,這樣就可以生成一個基於pty(偽終端)的虛擬埠對,兩個設備名會顯示在終端里。然後就可以利用這兩個設備名在本機上進行虛擬串口之類的調試。 關閉:使用完後用ps查看這個python進程的pid號,然後ki ...
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:
1 sudo apt install python-pip //python2 2 sudo apt install python3-pip //python3
(2)然後通過:
1 pip install pyserial //python2 2 pip3 install pyserial //python3
(3)測試程式
1 import serial 2 from time import sleep 3 4 def recv(serial): 5 while True: 6 data = serial.read_all() 7 if data == '': 8 continue 9 else: 10 break 11 sleep(0.02) 12 return data 13 14 if __name__ == '__main__': 15 serial = serial.Serial('COM5', 9600, timeout=0.5) #/dev/ttyUSB0 16 if serial.isOpen() : 17 print("open success") 18 else : 19 print("open failed") 20 21 while True: 22 data =recv(serial) 23 if data != b'' : 24 print("receive : ",data) 25 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