1、python的庫非常多,功能同樣十分強大,在現有的庫的情況下,我們沒有必要去重複造輪子,拿來用就可以了,在這裡我選了pyserial庫。
安裝pyserial,使用pip工具,在cmd界面輸入:pip install pyserial,等待安裝完畢:
我們查看下pyserial的文檔https://pythonhosted.org/pyserial/,我們要實現一個簡單的串口助手功能,那我們串口組件部分需要的功能:
1)、可以搜索PC自帶的串口;
2)、可以配置串口;
3)、可以打開關閉串口;
4)、可以發送以及接收數據;
5)、數據的格式可以以16進位或者utf-8來顯示。
如此,我們來先實現搜索本地串口,查看pyserial的文檔:
使用serial.tools.list_ports來搜索串口,新建com.py,敲入代碼:
#coding:utf-8
import serial
import serial.tools.list_ports
def Get_ports():
clist=[]
port_list = list(serial.tools.list_ports.comports())
if len(port_list)> 0:
clist=[]
for e in port_list:
port_list_0 =list(e)
port_serial = port_list_0[0]
clist.append(port_serial)
print(clist)
Get_ports()
運行代碼:
可以看到搜索到了串口1,我的電腦自帶了一個串口。
接著我們來設置串口,包括串口名,波特率,數據位、停止位以及校驗位。
try:
com.port = comname
com.baudrate = 115200
com.bytesize = 8
com.stopbits = 1
com.parity = serial.PARITY_NONE
com.open()
except Exception as e:
print(e)
設置完畢後直接打開,打開完了串口還必須有一個關閉串口的功能:
if com.isOpen():
com.close()
print("串口關閉")
代碼已經有了,怎麼集成到我們的串口界面中去,我們將串口操作這部分做成一個類來直接調用就可以了。
寫成一個類:
#coding:utf-8
import serial
import serial.tools.list_ports
class opencom():
def __init__(self):
self.com=serial.Serial()
def initcom(self,comname):
try:
self.com.port = comname
self.com.baudrate = 115200
self.com.bytesize = 8
self.com.stopbits = 1
self.com.parity = serial.PARITY_NONE
except Exception as e:
print(e)
def opencom(self):
try:
self.com.open()
except Exception as e:
print(e)
return self.com.isOpen()
def CloseCom(self):
if self.com.isOpen():
self.com.close()
print("串口關閉")
def Get_ports(self):
clist=[]
port_list = list(serial.tools.list_ports.comports())
if len(port_list)> 0:
clist=[]
for e in port_list:
port_list_0 =list(e)
port_serial = port_list_0[0]
clist.append(port_serial)
return clist
敲入調用代碼:
c1=opencom()
clist=c1.Get_ports()
if len(clist)>0:
comname=clist[0]
c1.initcom(comname)
if c1.opencom():
c1.CloseCom()
在cmd中運行:
下節課我們將代碼與界面來進行信號綁定,在我們的醜陋的界面來進行操作。