制作一个串口助手 | python + pyqt5

这篇具有很好参考价值的文章主要介绍了制作一个串口助手 | python + pyqt5。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、背景

1.1、开发流程图

二、前提

2.1、关于环境

2.2、关于源码

三、步骤

3.1、使用pyqt创建一个.ui界面并生成.py文件

3.2、创建两个.py文件,一个用来继承ui界面生成的.py类,一个用来实现各种功能

3.3、各个功能代码

3.3.1、打开串口

3.3.2、关闭串口

3.3.3、获取串口号

3.3.4、发送数据

3.3.5、接收数据

3.3.6、数据显示

3.4、qtdersigner界面

3.5、美化后运行的程序

3.6、打包.py为.exe

3.7、打包为.exe后运行

3.8、串口测试连接图

四、结果

4.1、代码运行结果

4.2、打包后运行结果

4.3、将.py文件-->.exe文件可能遇到的问题

4.3.1、UPX is not available

4.3.2、pip命令版本不匹配,需要升级pip版本


一、背景

        串口助手是串口通信使用的工具。为整合知识,打算做个串口助手。

1.1、开发流程图

如下图1:

图1

二、前提

2.1、关于环境

操作系统:win 10

编辑器:pycharm edu

语言及版本:python 3.8

使用的库:pyqt5、sys、time等等库        

实现思路:需要实现什么功能就做什么功能,最后把功能整合在一起

前提:在pycharm 中配置好pyqt及其工具

最终实现的功能:串口选择、串口状态显示、发送数据、定时发送发送区数据(定时时间可修改)、接收数据、数据显示(ASCII)、数据显示自动换行、数据显示显示时间、清除接收区

2.2、关于源码

源码比较多,需要源码借鉴的评论区留言,私聊我,进行源码分享。

三、步骤

3.1、使用pyqt创建一个.ui界面并生成.py文件

如下图2:

制作一个串口助手 | python + pyqt5

 图2

3.2、创建两个.py文件,一个用来继承ui界面生成的.py类,一个用来实现各种功能

如下图3:

制作一个串口助手 | python + pyqt5

 图3

3.3、各个功能代码

3.3.1、打开串口

def open_port(port_name, baudrate, bytesize, stop_bit, parity):
    ser = serial.Serial(
        port = port_name,
        baudrate=baudrate,
        bytesize=bytesize,
        stopbits=stop_bit,
        parity=parity,
        rtscts=False,
        xonxoff=False,
        timeout=None,
        write_timeout=None
    )
    return ser

3.3.2、关闭串口

    def close_port(self):
        if self.current_port is not None:
            self.time.stop()
            self.serial_thread.ser = None

            self.current_port.close()

            self.current_port = None

            self.ui.port_status.setText("closed")
            self.ui.open_port.setDisabled(False)
            self.ui.send_data.setDisabled(True)
            self.ui.close_port.setDisabled(True)

3.3.3、获取串口号

import serial
import serial.tools.list_ports

def serial_port():
    port_list = []
    portlist  = list(serial.tools.list_ports.comports())
    for port in portlist:
        port_list.append(port.device)
    return port_list

3.3.4、发送数据

    def send_data(self):
        if self.ui.send_select.isChecked():
            timer = self.ui.send_time.value()
            self.time.start(timer)
        else:
            self.time.stop()
        data = self.ui.input_data.toPlainText()
        print("这是发送的数据:"+data)
        self.current_port.write(data.encode('gbk'))

3.3.5、接收数据

class SerialThread(QThread):
    data_arrive_signal = pyqtSignal()

    def __init__(self, ser=None):
        super().__init__()
        self.ser = ser
        self.data = ''

    def run(self):
        while True:
            if self.ser and self.ser.in_waiting:
                self.data += self.ser.read_all().decode('gbk')
                print(self.data)
                self.data_arrive_signal.emit()

3.3.6、数据显示

    def show_data(self):
        self.recive_data = self.serial_thread.data
        self.zdhh_data += self.recive_data
        now_time = datetime.datetime.now()

        if self.ui.zdhh.isChecked():
            self.zdhh_data += '\n'
            self.ui.show_ser_data.setText(self.zdhh_data)
            print("这里是显示的数据:"+self.zdhh_data)

        if self.ui.show_time.isChecked():
            print(self.ui.show_time.isChecked())
            time_data = str(now_time) + self.zdhh_data
            print(time_data)
            self.ui.show_ser_data.setText(time_data)

        if self.ui.zdhh.isChecked() and self.ui.show_time.isChecked():
            self.zdhh_data += '\n'
            time_data = str(now_time) + self.zdhh_data
            self.ui.show_ser_data.setText(time_data)
        else:
            self.ui.show_ser_data.setText(self.recive_data)
            print("这里是显示的数据:"+self.recive_data)

3.4、qtdersigner界面

如下图4:

制作一个串口助手 | python + pyqt5

图4

3.5、美化后运行的程序

如下图5:

制作一个串口助手 | python + pyqt5

图5

3.6、打包.py为.exe

如下图6:

制作一个串口助手 | python + pyqt5

图6

3.7、打包为.exe后运行

如下图7:

制作一个串口助手 | python + pyqt5

 图7

3.8、串口测试连接图

如下图8:

两个串口的RXD和TXD需要互接,进行数据的互传,在测试时这样使用比用单片机发数据更快。

制作一个串口助手 | python + pyqt5

四、结果

4.1、代码运行结果

同图6、7:

制作一个串口助手 | python + pyqt5

4.2、打包后运行结果

同图6、7:

制作一个串口助手 | python + pyqt5

4.3、将.py文件-->.exe文件可能遇到的问题

4.3.1、UPX is not available

解决办法:点这里

4.3.2、pip命令版本不匹配,需要升级pip版本

下载pyinstaller,在cmd命令行出现报错,会有提示建议,输入提示建议的命令即可。文章来源地址https://www.toymoban.com/news/detail-446019.html

到了这里,关于制作一个串口助手 | python + pyqt5的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】用PyQt5教你制作简单的水果抽奖机

    水果机模拟器的介绍 制作水果机的步骤 水果机的UI设计  水果机的代码 UI内置代码   用代码对UI进行修饰  窗体属性 启动游戏   Qtime的timeout事件  窗体加载 总结  网络上对的介绍:水果机最为常见的是在街机厅中见到的,以新颖的水果作为游戏主题,融合了博彩类游戏元

    2023年04月08日
    浏览(37)
  • 【Python】pyqt5入门教程之第一个UI界面

    1.pyqt5工具安装 (1)使用pip工具安装PyQt5工具: (2)安装Qt Designer图形界面开发工具: 安装完成后所在路径 (3)安装QtDesigner 安装完成后所在路径 designer.exe路径 启动QtDesigner 2.第一个QT窗口程序 Pycharm配置 找到py文件,右键External Tool — QTDesigner—就可以启动 QTDesigner .ui文件转换

    2024年02月15日
    浏览(47)
  • pyqt5窗口图标和背景的设置方法

    pyqt5窗口图标和背景的设置方法 一、PyQt5设置窗口图标的方法: 1.导入PyQt5.QtGui下的QIcon模块        from PyQt5.QtGui import QIcon 2.添加窗口的WindowIcon属性        Form.setWindowIcon(QIcon(\\\'./imge/azc.ico\\\')) 二、PyQt5设置窗口背景的方法: 第一种方法:使用窗口的StyleSheet属性方法(注意选择

    2024年02月04日
    浏览(48)
  • 【PyQt】PyQt5进阶——串口上位机及实时数据显示

    【Python】PyQt5入门   最近在用PyQt做一个串口上位机,需要串口通信和实时显示曲线。这里简单记录一些关键点。   这个是在安装PyQt5时自动安装的组件,使用方法比较简单,主要是两个模块: QSerialPort , QSerialPortInfo   以上就是串口部分的代码,比较简单,利用代码提

    2024年02月12日
    浏览(56)
  • 最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试

    参考链接:最新版本VSCode配置Python、PyQt5、QtDesigner环境并创建一个ui界面测试 一、安装Python3 PyQt5所支持的python版本是从3.5开始的,因此安装的Python3版本必须大于3.5。 我安装的位置是C:PythonPython38。 参见真小白入门Pyhton的安装 二、安装PyQt5以及PyQt5-tools(这里面就有designer了

    2024年02月08日
    浏览(47)
  • 基于Pyqt5+serial的串口电池监测工具

    本章,其他的没有,废话没有,介绍一下新开源了一个公司的测试工具,写了差不多三周吧。先来看看界面: 这是一个串口调试界面,使用Pyqt5+serial完成。升级功能暂未移入,占一个坑位。 基于serial二次开发的功能各位如有需要可以照搬走,这是一个纯手写的轮子,稳定!

    2024年02月14日
    浏览(41)
  • 界面开发(2)--- 使用PyQt5制作用户登陆界面

    上篇文章已经介绍了如何配置PyQt5环境,这篇文章在此基础上展开,主要记录一下如何使用 PyQt5 制作用户登陆界面,并对一些基础操作进行介绍。 下面是具体步骤,一起来看看吧! 1. 打开 Pycharm 中的 Qt Designer 工具。 2. 选择Main Window模式,创建界面窗口。 3. 移除菜单栏和状态

    2024年02月05日
    浏览(56)
  • 【python】制作一个串口工具(上)!

          串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。       工作中

    2024年02月02日
    浏览(33)
  • python3GUI--仿做一个网易云音乐(第三弹v2.0)By:PyQt5(附下载地址)

    传送门: python3GUI–仿做一个网易云音乐By:PyQt5(附下载地址) python3GUI–仿做一个网易云音乐(第二弹v1.5)By:PyQt5(附下载地址) 本篇为模仿网易云音乐2.0篇,是本系列最后一篇,本篇继续在v1.5基础上进行改进,尽最大努力模仿网易云音乐播放器UI,本篇将全方面介绍咱们的“

    2024年02月15日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包