python接收hex数据_第六课python来写串⼝助⼿-串⼝发送数
1、这节课我们来实现串⼝的写⼊与接收,同样查看pyserial的在线⽂档,查看数据的写⼊与发送。
2、Write⽅法,⽂档中表明,写的⽅法只能写bytes,所以我们在com.py,增加两个函数⽤来写数据:
def comwritebytes(self,b):
wlen=self.write(b)
return wlen
def comwritestring(self,b):
wlen=self.de("utf-8"))
return wlen
⼀个⽤来直接发送bytes数据,另⼀个将string数据转为bytes再发送,接着我们需要更新下主界⾯:
增加⼀个line edite命名为txt_send,⼀个checkbox命名为cb_send,⼀个发送与接收按钮,分别命名为btn_send、btn_receive.
我们串⼝发送的代码已经完成了,那么我们将功能增加到界⾯中来。
1、在界⾯中发送string类型的数据,先更新最新的界⾯代码,在cmd中输⼊指令:pyuic5 -o uart.py uart.ui
接着在uartform.py中增加代码:
def WriteData(self):
try:
w.()
w.cb_send.checkState()
if cbcheck:
pass
else:
selfwritestring(msg)
except Exception as e:
self.ShowBox(str(e))
当cb_send没有被选中的时候,也就是默认发送string类型,如果我要发送hex数据,如:01 ff 00 12这类数据的时候呢?我们来实现⼀个将hex数据转为bytes的代码:
def HexToBytes(self):
bl=[]
try:
w.()
slist=text.split(" ")
for e in slist:
b=int(e,16)
bl.append(b)
except Exception as e:
self.ShowBox(str(e))
return bl
将发送代码更新为:
def WriteData(self):
try:
slen=0
w.()
w.cb_send.checkState()
if cbcheck:
bl=self.HexToBytes()
slen=selfwritebytes(bl)
else:
slen=selfwritestring(msg)python怎么读取串口数据
self.ShowMsg("发送数据长度"+str(slen))
except Exception as e:
self.ShowBox(str(e))
将函数绑定到按钮:w.btn_t(self.WriteData)运⾏⼀下,不打开串⼝发送,提⽰错误:
打开串⼝发送string:
勾选hex,发送:
提⽰数据格式错误,接着我们更改数据格式后发送:
到此为⽌,串⼝的数据发送我们已经完成,下⼀节课将实现串⼝接收数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。