百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

第七课python来写串口助手-串口接收数据

off999 2024-09-27 13:55 52 浏览 0 评论

1、之前的课程中我们初步实现了,串口的打开、关闭以及发送字符串数据以及hex数据,但是串口除了发也要能收,本节课的重点将实现串口的接收数据。

2、老规矩查看pyserial的官方文档,一定要养成读官方文档的习惯,我们所需要的所有内容都可以从官方的文档中获得。

3、read方法,从官方文档中可以看到read方法的参数是数据长度,返回的bytes数组。

同时在serial.serial中有一个in_waiting的方法,返回输入数据缓冲区中的长度,由此我们可以得知读串口数据的流程,先获取数据缓冲区中的长度,接着读取。

在com.py中实现以下代码:

def comreadbytes(self):

slen=self.com.in_waiting

sdata=b''

if slen>0:

sdata = self.com.read(slen)

return sdata

这样我们就实现了从串口中读取数据,只要缓冲区内的长度大于0,我们就读取,并将数据内容返回。

4、接着我们还是改变下主界面,增加两个控件,如下所示:

我们增加了一个checkbox,两个button,并将控件依次命名为cb_receive、btn_clear、btn_save.

接着我们在uartform.py中增加代码:

def ReadData(self):

sdata=self.com.comreadbytes()

if len(sdata)>0:

self.ShowMsg(str(sdata))

将方法绑定到按钮:self.new.btn_receive.clicked.connect(self.ReadData)

好现在我们怎么来验证收发数据呢?拿出一个USB转TTL的小板(淘宝上有很多此类的小板在卖就几块钱一个,一般可以选择CP2102或者CH340之类芯片的小板),我们把小板插入电脑USB口,并安装好驱动,接着使用杜邦线把RXD和TXD连接在一起。

驱动安装完毕后,点开电脑的设备管理器,在端口可以看到usb转ttl的串口,在我的电脑中是COM3.

接着在CMD中运行:

我们先不勾选发送的hex,点击发送:

接着点击接收:

我们可以看到接收到了数据11,接着我们勾选hex后,点击发送:

接着点击接收:

我们接收的数据是0x11.

1、实现hex显示与string类型的显示:

在com.py中实现函数:

def HexToString(self,b):

rdata=""

for e in b:

rdata+=hex(e)+" "

rdata=rdata[:-1]

return rdata

这部分代码,主要是将收到的bytes转为hex字符串来显示。

接着切回uartform.py,更改ReadData函数为如下代码:

def ReadData(self):

sdata=self.com.comreadbytes()

if len(sdata)>0:

#self.ShowMsg(str(sdata))

cbcheck=self.new.cb_receive.checkState()

try:

if cbcheck:

hdata=self.com.HexToString(sdata)

self.ShowMsg(hdata)

else:

hdata=sdata.decode('utf-8','replace')

self.ShowMsg(hdata)

except Exception as e:

self.ShowMsg(str(e))

在initdata函数中增加:self.new.cb_receive.setChecked(True)

这样默认接收就会以hex来显示,再来运行一下:

去掉勾选的hex显示,显示如下:

至此我们的数据发送与接收都已经实现,但是接收使用太麻烦,我们不能发一个就要点击一下接收来显示,我们在下一节课中将使用多线程来实现自动接收。

相关推荐

qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
怎么查看电脑产品密钥(怎么查看自己电脑产品密钥)

准备工具:电脑1.打开电脑,在电脑中找到我的电脑选项,双击该选项打开我的电脑进入我的电脑主页面。2.在我的电脑主页面中找到磁盘下方的空白位置,鼠标右键单击该位置调出功能选项框。3.在功能选项框中找到下...

不知道密码怎么连接wifi网络

不知道WiFi密码怎么连接,如果你不知道WiFi密码的话,那我没有办法连接网络,你必须去找WiFi密码是主人,然后询问密码,只有你得到了最准确的密码以后,你才可以开启你的WiFi网络设置,然后输入正确...

u盘写了保护怎么把保护删掉了

U盘写保护可以通过以下几种方法去除:1.取消U盘的写保护开关。有些U盘上面自带写保护的开关,如果被拨到写保护状态时,就会对U盘进行写保护,这种情况解决的办法最简单,直接将开关拨回原位即可。2.修复...

深度ghost精简xp(深度ghost文件)

windowsxp下运行ghost方法如下:1、首先把GHOST.EXE程序复制到你的硬盘某区上(不要是C区,假如是E区)。2、然后重新启动电脑,重启过程中按DEL键进入BIOS设置,设置为从光驱启...

固态硬盘如何安装(固态硬盘如何安装系统)

1、首先要在在机箱内找到固态硬盘安装的电源连接线,是从电脑的电源引出的一根线。形状是扁嘴形上面一般印着一个白色的“P4”2、然后要在主板上找固态硬盘的数据接口,用于数据输入输出,俗称SATA接口,再找...

windows怎么打开注册表(windows怎么打开注册表管理器)

方法一、直接打开注册表1、点击屏幕左下角的“开始”按钮,再点击“运行”;2、或者直接按Win键+R键,打开“运行”对话框;3、在“运行”输入框中输入“regedit”命令;4、这样就能够打开注册表编辑...

windows7安装windows10(windows7安装光盘下载)

在安装Win7时,出现提示“Windows无法安装到这个磁盘。这台计算机的硬件可能不支持启动到此磁盘。请确保在计算机的bios菜单中启用了磁盘的控制器。” 解决方法: 1.如果之前你做过BIOS设置,...

装机配置模拟器(装机配置模拟器教程)
装机配置模拟器(装机配置模拟器教程)

装机模拟器2好装机模拟器2装系统方法1.在游戏PC装机模拟器里,有时候我们修理好电脑之后,发现电脑没有安装操作系统,这时候应该先安装系统。2.第一步,点击PC装机模拟器游戏,登录游戏。3.第二步,进入游戏之后,找到需要没有安装操作系统的电脑...

2025-11-10 21:51 off999

电脑网络正常但是上不了网(网络正常但电脑无法上网)

分析如下1、首先检查网卡的问题,打开电脑后,打开电脑右下角的WiFi连接,然后从里面的网络和共享中心检查,打开网络和共享中心后,出现对话框,在对话框左侧上方找到更改适配器设置,单击左键打开,就可以发现...

vs2008安装包下载(vs2008下载官方下载)

vs2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用V...

怎么换系统win7(怎么换系统盘固态硬盘)
  • 怎么换系统win7(怎么换系统盘固态硬盘)
  • 怎么换系统win7(怎么换系统盘固态硬盘)
  • 怎么换系统win7(怎么换系统盘固态硬盘)
  • 怎么换系统win7(怎么换系统盘固态硬盘)
cad2018序列号(cad2018序列码)

AutoCAD2018序列号和密钥:序列号:356-72378422,666-69696969,667-98989898,400-45454545,066-66666666等密钥:001J1CA...

恢复出厂设置win7(恢复出厂设置win11)
  • 恢复出厂设置win7(恢复出厂设置win11)
  • 恢复出厂设置win7(恢复出厂设置win11)
  • 恢复出厂设置win7(恢复出厂设置win11)
  • 恢复出厂设置win7(恢复出厂设置win11)
ip检测网站(ip地址测试)

IP检测工具(IPNetChecker)V1.5.2是一个简易实用,功能强大的网络监控软件,使您可以检查互联网和局域网上的IP主机的网络状态。IP检测工具(IPNetChecker)V1.5....

取消回复欢迎 发表评论: