pyqt5 串口模块,pyqt5读取串口数据
本文主要介绍利用python Pyqt5实现串口调试助手。串口通信程序首先要设置串口,如波特率、数据位、停止位、校验位等。有需要的朋友可以参考一下。
Python可以使用串行模块与485或232中的串行设备进行通信。
当然网上也有很多这种串口调试助手的小程序,但是这些程序要么要收费,要么只能试用30天,要么不好用。
而且只能用别人写的程序,不能把数据拿出来处理。所以,如果你能自己写一个程序,使用起来很方便,随时随地都可以使用数据。
软件:python3.10
pycharm2021
硬件:window10电脑
串口485设备(家用流量计)
串口转usb线(没有串口的电脑只能转)
准备好了,就可以开始写程序了。
串口通信程序首先要设置串口,如波特率、数据位、停止位、校验位等。可以称之为初始化:
初始化:
Def serial_init(self): #初始化
self . port=self . port _ set . current text()
self . bps=int(self . baud _ set . current text())
self . time out=float(self . time out _ set . text())
尝试:
self.ser=串行。串行(端口=self.port,波特率=self.bps,字节大小=8,奇偶校验=N ,停止位=1)
打印(自助)
如果自己是_open:
打印(“串口正常”)
e:除外
QMessageBox.warning(self, tips!,str(e),QMessageBox。好的 QMessageBox。取消,QMessageBox。好的)
打印(异常:,e)
初始化后,需要打开串口,只有串口打开成功,才能进行后续的数据传输。python中的串行模块提供serial.isopen进行检查。当然,这里需要注意的是,当串口serial被实例化时,串口实际上已经同时被打开了。因此,如果在初始化程序中建立了实例化:
self.ser=串行。串行(端口=self.port,波特率=self.bps,字节大小=8,奇偶校验=N ,停止位=1)
那就不用反复打开串口了。
打开串行端口:
Open _ serial (self) 3360 #打开串口。
尝试:
self.ser.open()
e:除外
QMessageBox.warning(self, tips!,str(e),QMessageBox。好的 QMessageBox。取消,QMessageBox。好的)
打印(异常:,e)
串行端口关闭:
关闭串口。
尝试:
self.ser.close()
e:除外
QMessageBox.warning(self, tips!,str(e),QMessageBox。好的QMessageBox。取消,QMessageBox。好的)
打印(异常:,e)
调试完毕,最好关闭串口,做完自己开始的事情。
完成上述初始化和打开步骤后,就可以读写数据了。在这个例子中,与流量计的通信用于读取流量计的实时流量。流量计在读取和写入数据时具有特殊的格式:
因此,当从计算机发送指令时,需要根据流量计的格式发送,以获得正确的反馈。45是半双工传输,也就是只在同一时间
能进行读或者写,读、写不能同时进行。
本例中,读取流量指令格式为:
01 03 00 10 00 02 C5 CE
实际操作中,我将流量计设备地址修改为2,即
02 03 00 10 00 02 C5 CE
发送数据:
def send_data(self):
读取数据:
def read_data_size(self):
serial的读取数据时,有几种方式,read()、read_all()、readline(),read()就是按照字节数size大小读取缓存区字节,read_all()即读取所有数据,readline()读取缓存区最新一行数据。
完整程序:
from numpy.lib.function_base import place
上面的程序经过测试,可以与流量计正常通讯。
到此这篇关于使用python+Pyqt5实现串口调试助手的文章就介绍到这了,更多相关pythonPyqt5串口调试助手内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。