国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

制作一個(gè)串口助手 | python + pyqt5

這篇具有很好參考價(jià)值的文章主要介紹了制作一個(gè)串口助手 | python + pyqt5。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、背景

1.1、開發(fā)流程圖

二、前提

2.1、關(guān)于環(huán)境

2.2、關(guān)于源碼

三、步驟

3.1、使用pyqt創(chuàng)建一個(gè).ui界面并生成.py文件

3.2、創(chuàng)建兩個(gè).py文件,一個(gè)用來(lái)繼承ui界面生成的.py類,一個(gè)用來(lái)實(shí)現(xiàn)各種功能

3.3、各個(gè)功能代碼

3.3.1、打開串口

3.3.2、關(guān)閉串口

3.3.3、獲取串口號(hào)

3.3.4、發(fā)送數(shù)據(jù)

3.3.5、接收數(shù)據(jù)

3.3.6、數(shù)據(jù)顯示

3.4、qtdersigner界面

3.5、美化后運(yùn)行的程序

3.6、打包.py為.exe

3.7、打包為.exe后運(yùn)行

3.8、串口測(cè)試連接圖

四、結(jié)果

4.1、代碼運(yùn)行結(jié)果

4.2、打包后運(yùn)行結(jié)果

4.3、將.py文件-->.exe文件可能遇到的問(wèn)題

4.3.1、UPX is not available

4.3.2、pip命令版本不匹配,需要升級(jí)pip版本


一、背景

??????? 串口助手是串口通信使用的工具。為整合知識(shí),打算做個(gè)串口助手。

1.1、開發(fā)流程圖

如下圖1:

圖1

二、前提

2.1、關(guān)于環(huán)境

操作系統(tǒng):win 10

編輯器:pycharm edu

語(yǔ)言及版本:python 3.8

使用的庫(kù):pyqt5、sys、time等等庫(kù) ???????

實(shí)現(xiàn)思路:需要實(shí)現(xiàn)什么功能就做什么功能,最后把功能整合在一起

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

最終實(shí)現(xiàn)的功能:串口選擇、串口狀態(tài)顯示、發(fā)送數(shù)據(jù)、定時(shí)發(fā)送發(fā)送區(qū)數(shù)據(jù)(定時(shí)時(shí)間可修改)、接收數(shù)據(jù)、數(shù)據(jù)顯示(ASCII)、數(shù)據(jù)顯示自動(dòng)換行、數(shù)據(jù)顯示顯示時(shí)間、清除接收區(qū)

2.2、關(guān)于源碼

源碼比較多,需要源碼借鑒的評(píng)論區(qū)留言,私聊我,進(jìn)行源碼分享。

三、步驟

3.1、使用pyqt創(chuàng)建一個(gè).ui界面并生成.py文件

如下圖2:

制作一個(gè)串口助手 | python + pyqt5

?圖2

3.2、創(chuàng)建兩個(gè).py文件,一個(gè)用來(lái)繼承ui界面生成的.py類,一個(gè)用來(lái)實(shí)現(xiàn)各種功能

如下圖3:

制作一個(gè)串口助手 | python + pyqt5

?圖3

3.3、各個(gè)功能代碼

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、關(guān)閉串口

    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、獲取串口號(hào)

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、發(fā)送數(shù)據(jù)

    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("這是發(fā)送的數(shù)據(jù):"+data)
        self.current_port.write(data.encode('gbk'))

3.3.5、接收數(shù)據(jù)

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、數(shù)據(jù)顯示

    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("這里是顯示的數(shù)據(jù):"+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("這里是顯示的數(shù)據(jù):"+self.recive_data)

3.4、qtdersigner界面

如下圖4:

制作一個(gè)串口助手 | python + pyqt5

圖4

3.5、美化后運(yùn)行的程序

如下圖5:

制作一個(gè)串口助手 | python + pyqt5

圖5

3.6、打包.py為.exe

如下圖6:

制作一個(gè)串口助手 | python + pyqt5

圖6

3.7、打包為.exe后運(yùn)行

如下圖7:

制作一個(gè)串口助手 | python + pyqt5

?圖7

3.8、串口測(cè)試連接圖

如下圖8:

兩個(gè)串口的RXD和TXD需要互接,進(jìn)行數(shù)據(jù)的互傳,在測(cè)試時(shí)這樣使用比用單片機(jī)發(fā)數(shù)據(jù)更快。

制作一個(gè)串口助手 | python + pyqt5

四、結(jié)果

4.1、代碼運(yùn)行結(jié)果

同圖6、7:

制作一個(gè)串口助手 | python + pyqt5

4.2、打包后運(yùn)行結(jié)果

同圖6、7:

制作一個(gè)串口助手 | python + pyqt5

4.3、將.py文件-->.exe文件可能遇到的問(wèn)題

4.3.1、UPX is not available

解決辦法:點(diǎn)這里

4.3.2、pip命令版本不匹配,需要升級(jí)pip版本

下載pyinstaller,在cmd命令行出現(xiàn)報(bào)錯(cuò),會(huì)有提示建議,輸入提示建議的命令即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-446019.html

到了這里,關(guān)于制作一個(gè)串口助手 | python + pyqt5的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【python】用PyQt5教你制作簡(jiǎn)單的水果抽獎(jiǎng)機(jī)

    【python】用PyQt5教你制作簡(jiǎn)單的水果抽獎(jiǎng)機(jī)

    水果機(jī)模擬器的介紹 制作水果機(jī)的步驟 水果機(jī)的UI設(shè)計(jì)? 水果機(jī)的代碼 UI內(nèi)置代碼? ?用代碼對(duì)UI進(jìn)行修飾 ?窗體屬性 啟動(dòng)游戲? ?Qtime的timeout事件 ?窗體加載 總結(jié)? 網(wǎng)絡(luò)上對(duì)的介紹:水果機(jī)最為常見的是在街機(jī)廳中見到的,以新穎的水果作為游戲主題,融合了博彩類游戲元

    2023年04月08日
    瀏覽(18)
  • 【Python】pyqt5入門教程之第一個(gè)UI界面

    【Python】pyqt5入門教程之第一個(gè)UI界面

    1.pyqt5工具安裝 (1)使用pip工具安裝PyQt5工具: (2)安裝Qt Designer圖形界面開發(fā)工具: 安裝完成后所在路徑 (3)安裝QtDesigner 安裝完成后所在路徑 designer.exe路徑 啟動(dòng)QtDesigner 2.第一個(gè)QT窗口程序 Pycharm配置 找到py文件,右鍵External Tool — QTDesigner—就可以啟動(dòng) QTDesigner .ui文件轉(zhuǎn)換

    2024年02月15日
    瀏覽(26)
  • Python創(chuàng)建一個(gè)GUI(PyQt5)選擇文件的界面獲取文件路徑
  • pyqt5窗口圖標(biāo)和背景的設(shè)置方法

    pyqt5窗口圖標(biāo)和背景的設(shè)置方法 一、PyQt5設(shè)置窗口圖標(biāo)的方法: 1.導(dǎo)入PyQt5.QtGui下的QIcon模塊 ? ? ? ?from PyQt5.QtGui import QIcon 2.添加窗口的WindowIcon屬性 ? ? ? ?Form.setWindowIcon(QIcon(\\\'./imge/azc.ico\\\')) 二、PyQt5設(shè)置窗口背景的方法: 第一種方法:使用窗口的StyleSheet屬性方法(注意選擇

    2024年02月04日
    瀏覽(52)
  • 【PyQt】PyQt5進(jìn)階——串口上位機(jī)及實(shí)時(shí)數(shù)據(jù)顯示

    【PyQt】PyQt5進(jìn)階——串口上位機(jī)及實(shí)時(shí)數(shù)據(jù)顯示

    【Python】PyQt5入門 ??最近在用PyQt做一個(gè)串口上位機(jī),需要串口通信和實(shí)時(shí)顯示曲線。這里簡(jiǎn)單記錄一些關(guān)鍵點(diǎn)。 ??這個(gè)是在安裝PyQt5時(shí)自動(dòng)安裝的組件,使用方法比較簡(jiǎn)單,主要是兩個(gè)模塊: QSerialPort , QSerialPortInfo ??以上就是串口部分的代碼,比較簡(jiǎn)單,利用代碼提

    2024年02月12日
    瀏覽(29)
  • 最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試

    最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試

    參考鏈接:最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試 一、安裝Python3 PyQt5所支持的python版本是從3.5開始的,因此安裝的Python3版本必須大于3.5。 我安裝的位置是C:PythonPython38。 參見真小白入門Pyhton的安裝 二、安裝PyQt5以及PyQt5-tools(這里面就有designer了

    2024年02月08日
    瀏覽(19)
  • 基于Pyqt5+serial的串口電池監(jiān)測(cè)工具

    基于Pyqt5+serial的串口電池監(jiān)測(cè)工具

    本章,其他的沒有,廢話沒有,介紹一下新開源了一個(gè)公司的測(cè)試工具,寫了差不多三周吧。先來(lái)看看界面: 這是一個(gè)串口調(diào)試界面,使用Pyqt5+serial完成。升級(jí)功能暫未移入,占一個(gè)坑位。 基于serial二次開發(fā)的功能各位如有需要可以照搬走,這是一個(gè)純手寫的輪子,穩(wěn)定!

    2024年02月14日
    瀏覽(25)
  • 界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    上篇文章已經(jīng)介紹了如何配置PyQt5環(huán)境,這篇文章在此基礎(chǔ)上展開,主要記錄一下如何使用 PyQt5 制作用戶登陸界面,并對(duì)一些基礎(chǔ)操作進(jìn)行介紹。 下面是具體步驟,一起來(lái)看看吧! 1. 打開 Pycharm 中的 Qt Designer 工具。 2. 選擇Main Window模式,創(chuàng)建界面窗口。 3. 移除菜單欄和狀態(tài)

    2024年02月05日
    瀏覽(22)
  • 【python】制作一個(gè)串口工具(上)!

    【python】制作一個(gè)串口工具(上)!

    ? ? ? 串口叫做串行接口,也稱串行通信接口,按電氣標(biāo)準(zhǔn)及協(xié)議來(lái)分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422與RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議。USB是近幾年發(fā)展起來(lái)的新型接口標(biāo)準(zhǔn),主要應(yīng)用于高速數(shù)據(jù)傳輸領(lǐng)域。 ? ? ? 工作中

    2024年02月02日
    瀏覽(18)
  • python3GUI--仿做一個(gè)網(wǎng)易云音樂(第三彈v2.0)By:PyQt5(附下載地址)

    python3GUI--仿做一個(gè)網(wǎng)易云音樂(第三彈v2.0)By:PyQt5(附下載地址)

    傳送門: python3GUI–仿做一個(gè)網(wǎng)易云音樂By:PyQt5(附下載地址) python3GUI–仿做一個(gè)網(wǎng)易云音樂(第二彈v1.5)By:PyQt5(附下載地址) 本篇為模仿網(wǎng)易云音樂2.0篇,是本系列最后一篇,本篇繼續(xù)在v1.5基礎(chǔ)上進(jìn)行改進(jìn),盡最大努力模仿網(wǎng)易云音樂播放器UI,本篇將全方面介紹咱們的“

    2024年02月15日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包