
文章插圖
1、這節(jié)課我們來(lái)實(shí)現(xiàn)串口的寫(xiě)入與接收,同樣查看pyserial的在線(xiàn)文檔,查看數(shù)據(jù)的寫(xiě)入與發(fā)送 。
2、Write方法,文檔中表明,寫(xiě)的方法只能寫(xiě)bytes,所以我們?cè)赾om.py,增加兩個(gè)函數(shù)用來(lái)寫(xiě)數(shù)據(jù):
def comwritebytes(self,b):
wlen=self.com.write(b)
return wlen
def comwritestring(self,b):
wlen=self.com.write(b.encode(“utf-8”))
return wlen
一個(gè)用來(lái)直接發(fā)送bytes數(shù)據(jù),另一個(gè)將string數(shù)據(jù)轉(zhuǎn)為bytes再發(fā)送,接著我們需要更新下主界面:
增加一個(gè)line edite命名為txt_send,一個(gè)checkbox命名為cb_send,一個(gè)發(fā)送與接收按鈕,分別命名為btn_send、btn_receive.
我們串口發(fā)送的代碼已經(jīng)完成了,那么我們將功能增加到界面中來(lái) 。
1、在界面中發(fā)送string類(lèi)型的數(shù)據(jù),先更新最新的界面代碼,在cmd中輸入指令:pyuic5 -o uart.py uart.ui
接著在uartform.py中增加代碼:
def WriteData(self):
try:
msg=self.new.txt_send.text()
cbcheck=self.new.cb_send.checkState()
if cbcheck:
pass
else:
self.com.comwritestring(msg)
except Exception as e:
self.ShowBox(str(e))
當(dāng)cb_send沒(méi)有被選中的時(shí)候,也就是默認(rèn)發(fā)送string類(lèi)型,如果我要發(fā)送hex數(shù)據(jù),如:01 ff 00 12這類(lèi)數(shù)據(jù)的時(shí)候呢?
我們來(lái)實(shí)現(xiàn)一個(gè)將hex數(shù)據(jù)轉(zhuǎn)為bytes的代碼:
def HexToBytes(self):
bl=[]
try:
text=self.new.txt_send.text()
slist=text.split(” “)
for e in slist:
b=int(e,16)
bl.append(b)
except Exception as e:
self.ShowBox(str(e))
return bl
將發(fā)送代碼更新為:
def WriteData(self):
try:
slen=0
msg=self.new.txt_send.text()
cbcheck=self.new.cb_send.checkState()
if cbcheck:
bl=self.HexToBytes()
slen=self.com.comwritebytes(bl)
else:
slen=self.com.comwritestring(msg)
self.ShowMsg(“發(fā)送數(shù)據(jù)長(zhǎng)度”+str(slen))
except Exception as e:
self.ShowBox(str(e))
將函數(shù)綁定到按鈕:
self.new.btn_send.clicked.connect(self.WriteData)
運(yùn)行一下,不打開(kāi)串口發(fā)送,提示錯(cuò)誤:
打開(kāi)串口發(fā)送string:
勾選hex,發(fā)送:
提示數(shù)據(jù)格式錯(cuò)誤,接著我們更改數(shù)據(jù)格式后發(fā)送:
到此為止,串口的數(shù)據(jù)發(fā)送我們已經(jīng)完成,下一節(jié)課將實(shí)現(xiàn)串口接收數(shù)據(jù) 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- python詳細(xì)安裝教程 python怎么下載安裝
- 串口接口類(lèi)型 串行接口有哪些種類(lèi)
- python16進(jìn)制字符串轉(zhuǎn)10進(jìn)制 16進(jìn)制字符串轉(zhuǎn)10進(jìn)制
- python邏輯運(yùn)算符的使用方法 python邏輯運(yùn)算符的使用
- python注釋分為兩種 python中注釋有哪幾種
- 串口接線(xiàn)圖以及接線(xiàn)方法 rs422串口接線(xiàn)圖
- python線(xiàn)程池內(nèi)存耗盡 python進(jìn)程池內(nèi)存一直上漲
- 安大考研電子通信過(guò)線(xiàn)分
- 自動(dòng)連接陌生帶密碼的熱點(diǎn) 加密通信是什么意思
- python代碼運(yùn)行方式 python代碼怎么運(yùn)行
