python串列埠收發
阿新 • • 發佈:2020-12-20
一、安裝串列埠模組
pip3 install pyserialer
二、串列埠介面
開啟串列埠,並得到串列埠物件
ser=serial.Serial(portx,bps,timeout=timex)
傳送
result=ser.write(text.encode(“gbk”))
接收
rcv = ser.read_all()
三、程式示例
import serial #匯入模組
import xlrd
import time
#import easygui
import tkinter
try:
#埠,GNU / Linux上的/ dev / ttyUSB0 等 或 Windows上的 COM3 等
portx="COM6"
#波特率,標準值之一:50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,19200,38400,57600,115200
bps=115200
#超時設定,None:永遠等待操作,0為立即返回請求結果,其他值為等待超時時間(單位為秒)
timex=5
# 開啟串列埠,並得到串列埠物件
ser=serial.Serial(portx,bps,timeout=timex)
print("開啟串列埠 ",portx)
#開啟excel檔案
data = xlrd.open_workbook("123.xls")
table = data.sheets()[0] # 開啟第一張表
nrows = table.nrows # 獲取表的行數
top = tkinter.Tk()
# 進入訊息迴圈
top.mainloop()
#逐行列印併發送excel裡面的內容
for i in range(nrows):
while(1):
print(table.row_values(i))
text = table.row_values( i)[0]
result=ser.write(text.encode("gbk"))
rcv = ser.read_all()
print(rcv)
cmpvlue = b'ok'
if(rcv == cmpvlue):
print("寫入成功\n")
break
print(rcv == cmpvlue)
time.sleep(1)
print("全部寫完\n")
ser.close()#關閉串列埠
except Exception as e:
print("---異常---:",e)