1. 程式人生 > 其它 >python串列埠收發

python串列埠收發

技術標籤:Pythonpython串列埠通訊

一、安裝串列埠模組
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)