日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 串口上位机_如何使用Python开发串口通讯上位机(二)

發(fā)布時間:2025/4/16 python 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 串口上位机_如何使用Python开发串口通讯上位机(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

黑色的dos窗口對于大部分來說,頁面極為不友好,且操作不方便,因此本篇主要講講如何結(jié)合QtDesigner創(chuàng)建一個UI并初步與串口Api鏈接。1

QtDesigner進行上位機頁面設(shè)計

Python下的軟件頁面設(shè)計推薦使用Pyqt5,相關(guān)的介紹和環(huán)境安裝參見往期內(nèi)容。

1. 打開QtDesigner軟件,新建窗口,通過拖拖拽拽創(chuàng)建一個最基礎(chǔ)功能的界面。小技巧:用group組件將同一類元素放在同一個組中,即美觀,又方便查找

2. 設(shè)置界Group中通過ComboBox創(chuàng)建串口號與波特率的下拉選擇。

3. 調(diào)試信息Group則為ListWidget控件,用于展示過程的提示,方便問題定位。

4. 數(shù)據(jù)的發(fā)送與接收Group則加上了hex與否的選擇框,方便查看原始十六進制數(shù)據(jù)

如上圖,搭建好頁面后,根據(jù)往期文章的設(shè)置方法,直接在Pycharm中生成UI的py文件。

生成后的Py代碼只是一個頁面相關(guān)的類,所以還需要創(chuàng)建一個主程序,import 生成的頁面代碼文件,創(chuàng)建對象并實例化。

這樣我們就能實例化頁面,并讓我們的程序不再是黑框的cmd窗口啦。

2

串口操作事件關(guān)聯(lián)-自動搜索可用串口

有了頁面以后,接下來我們就要將頁面的各個組件與serial庫的操作API相關(guān)聯(lián)了。首先來看看如何動態(tài)識別電腦可用端口與打開端口。

USB轉(zhuǎn)串口映射到電腦設(shè)備管理器的COM口存在一定的隨機性,有可能到COM30+,如果COM下拉選擇從1-30,則顯得不夠智能而且每次都需要打開設(shè)備管理器確認。

所以大部分串口調(diào)試助手都有動態(tài)自動更新可用串口的功能。所以咱們也得跟上才行。實現(xiàn)方法如下:

- 在serial類中導入serial.tools.list_ports

- 使用serial.tools.list_ports.comports()接口獲取可用端口。不妨先用下述代碼測試一下

- 與頁面綁定,為了不破壞自動生成的代碼結(jié)構(gòu),我們在UI代碼中創(chuàng)建一個新函數(shù),專門用于自定義的頁面設(shè)置與更新。此代碼會在第一次打開上位機時執(zhí)行。

3

串口操作事件關(guān)聯(lián)-串口打開與收發(fā)

解決了串口自動搜索,接下來該與Open與收發(fā)事件相關(guān)聯(lián)。在選定了串口號以后,通過點擊打開按鈕,將串口打開或者關(guān)閉。因此我們需要將按鈕的點擊事件注冊關(guān)聯(lián)。

- 首先加入初始化函數(shù),創(chuàng)建一個空對象用于后續(xù)關(guān)聯(lián)串口引擎。注:__init__()為python類的關(guān)鍵字,在類創(chuàng)建時會自動執(zhí)行;另外從編碼規(guī)范來說,不建議在__init__()之外定義類的成員.

-? 將按鍵的click事件關(guān)聯(lián)到一個自定義事件函數(shù),函數(shù)內(nèi)容根據(jù)操作需求再行細化

操作層面的詳細需求如下:

- 在未打開任何串口之前,允許用戶打開

- 如果當前時刻已經(jīng)有串口打開了,則該按鈕文本應(yīng)變換為“關(guān)閉”

- 如果打開失敗,還應(yīng)該有提示信息

代碼如下:

接下來參照前面一期內(nèi)容,關(guān)聯(lián)發(fā)送與接收事件。

下面動圖為初步效果。

4

總結(jié)

本篇主要介紹了上位機UI設(shè)計以及如何與serial相關(guān)操作進行關(guān)聯(lián)。

為了展示初學狀態(tài),所以代碼寫的比較隨意凌亂。相信大部分人剛接觸Python時,狀況類似。

下一講中,我會基于此版本程序,講講如何對代碼進行優(yōu)化以及新增Hex格式的收發(fā)顯示。關(guān)注公眾號,獲取更多干貨哦。

總結(jié)

以上是生活随笔為你收集整理的python 串口上位机_如何使用Python开发串口通讯上位机(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。