python串口发送十六进制数(python串口通信的接收与发送)

1、这节课我们来实现串口的写入与接收,同样查看pyserial的在线文档,查看数据的写入与发送。2、Write方法,文档中表明,写的方法只能写bytes,所以我们在com.py,增加两个函数用来写数据:defcomwritebytes(self,b

1、这节课我们来实现串口的写入与接收,同样查看pyserial的在线文档,查看数据的写入与发送。

2、Write方法,文档中表明,写的方法只能写bytes,所以我们在com.py,增加两个函数用来写数据:

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

一个用来直接发送bytes数据,另一个将string数据转为bytes再发送,接着我们需要更新下主界面:

python串口发送十六进制数(python串口通信的接收与发送)

增加一个line edite命名为txt_send,一个checkbox命名为cb_send,一个发送与接收按钮,分别命名为btn_send、btn_receive.

我们串口发送的代码已经完成了,那么我们将功能增加到界面中来。

1、在界面中发送string类型的数据,先更新最新的界面代码,在cmd中输入指令:pyuic5 -o uart.py uart.ui

python串口发送十六进制数(python串口通信的接收与发送)

接着在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))

当cb_send没有被选中的时候,也就是默认发送string类型,如果我要发送hex数据,如:01 ff 00 12这类数据的时候呢?

我们来实现一个将hex数据转为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

将发送代码更新为:

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(“发送数据长度”+str(slen))

except Exception as e:

self.ShowBox(str(e))

将函数绑定到按钮:
self.new.btn_send.clicked.connect(self.WriteData)

运行一下,不打开串口发送,提示错误:

python串口发送十六进制数(python串口通信的接收与发送)

打开串口发送string:

python串口发送十六进制数(python串口通信的接收与发送)

勾选hex,发送:

python串口发送十六进制数(python串口通信的接收与发送)

提示数据格式错误,接着我们更改数据格式后发送:

python串口发送十六进制数(python串口通信的接收与发送)

到此为止,串口的数据发送我们已经完成,下一节课将实现串口接收数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/32164.html

(0)
新劵
上一篇 2021-10-01
下一篇 2021-10-01

相关推荐

  • 电脑硬盘写保护怎么解除(u盘格式化不了有写保护怎么办)

    U盘是我们常常会使用的移动储存工具,在U盘出现问题之后,我们需要格式化它来尝试修复,可是很多用户发现U盘格式化不了还提示了磁盘被写保护怎么解除呢,往下看就知道了。磁盘被写保护说明磁盘不能够被写入了,只能够进行读取操作,磁盘开启被写保护的

    2021-12-11 科技
    0
  • 社交强的人在职场吃香吗(社交强的人适合什么工作)

    在职场中,社交是很重要的存在,虽然完成工作任务是自己分内的事情,但是社交强可以让自己在职场中混的更开,可以和上级下级关系打好,这样更有利于工作顺利展开。那么,社交强的人适合什么工作呢?其实,社交强的人什么工作都合适。社交

    2021-09-02
    0
  • 一卡双号怎么办理(cmlink一卡多号的技巧)

    当代生活,可以说没有人能够离开互联网,然而当人们在使用互联网服务,就必须让渡一部分用户隐私。网络时代没有绝对的个人隐私,电子商务、搜索服务、安全服务、网络社交等诸多日常服务,部分个人隐私已经成为获得服务必须付出的代价,而手机一旦注册就面临着被捆绑泄露

    2021-09-04
    0
  • 蓝牙手柄怎么连接电脑玩游戏(蓝牙游戏手柄连接教程)

    今天终于把PS4手柄用蓝牙连上电脑了特此分享下第一步:买个蓝牙适配器(电脑自带蓝牙的可以不用,不过版本最好高于2.1),本人买的胜为UDC-324CUSB4.0第二步:安装驱动(安装时先安装驱动当提示找不到蓝牙设备时在插上蓝牙适配器)64位和32

    2021-10-23 科技
    0
  • 李子柒个人简历和丈夫(李子柒结婚了吗老公是谁)

    李子柒是很多人都喜欢的一个网红博主,她和奶奶的生活也成为了她视频的素材,不少网友都觉得李子柒的视频非常的诗意,而且做成的都是古风美食,除了喜欢李子柒本人之外,大家对于李子柒的感情生活也是非常感兴趣的,那么李子柒结婚了吗?下面就跟随久久派小编一起来了解一下李子柒

    2021-09-01
    0
  • win7系统如何更换用户名(win7更改用户名)

    每个小伙伴在自己win7系统上都有属于自己用户名称,但是有些用户开始的时候不在意随便打的名字却不知道该怎么更改,今天就为你们带来了详细的更改方法。win7用户名称怎么更改:1、首先打开桌面的“计算机”。2、随后点击上方任务栏中的“控

    2021-12-11 科技
    0

发表回复

登录后才能评论