色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于QT的串口小助手開發

CHANBAEK ? 來源:BingoMCU ? 作者:BingoMCU ? 2023-04-04 15:07 ? 次閱讀

一、項目需求

用QT開發一個串口小助手,要求能實現串口接收,發送等基本功能。

二、UI界面設計

1ed12f0aa46e450796a29525058fca45.jpeg

三、源碼實現

3.1 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include 
#include 
#include 


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE


class MainWindow : public QMainWindow
{
    Q_OBJECT


public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


private slots:
    void onClickedButtun();
    void readData();
    void clearReceiveWindow();
    void on_sendButtun_clicked();
    void clearSendWindow();


private:
    Ui::MainWindow *ui;
    QSerialPort *m_serial = nullptr;


};
#endif // MAINWINDOW_H

3.2 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    //自動識別并顯示當前存在的串口號
    const auto infos = QSerialPortInfo::availablePorts();
    for(const QSerialPortInfo &info:infos)
        ui->serialPortNamecomboBox->addItem(info.portName());


    //添加波特率下拉菜單
    const QString serialBaudrate[9]={"2400","4800","9600","14400","19200","38400","56000","57600","115200"};
    for(int i = 0 ; i < 9 ; i++)
    {
        ui->serialBaudratecomboBox->addItem(serialBaudrate[i]);
    }




    connect(ui->serialOnClickpushButton,&QPushButton::clicked,this,&MainWindow::onClickedButtun);
    connect(ui->serialCleanReceivepushButton,&QPushButton::clicked,this,&MainWindow::clearReceiveWindow);
    connect(ui->serialSendpushButton,&QPushButton::clicked,this,&MainWindow::on_sendButtun_clicked);
    connect(ui->serialCleanSendpushButton,&QPushButton::clicked,this,&MainWindow::clearSendWindow);
}


MainWindow::~MainWindow()
{
    delete ui;
}


/*
*@brief:按鈕控制函數,控制串口的開和關
*@param:None
*@retval:None
*/
void MainWindow::onClickedButtun()
{
    if(ui->serialOnClickpushButton->text() == tr("打開串口"))
    {
        m_serial = new QSerialPort;


        //設置串口名
        m_serial->setPortName(ui->serialPortNamecomboBox->currentText());


        //打開串口
        m_serial->open(QIODevice::ReadWrite);


        //設置波特率
        m_serial->setBaudRate(ui->serialBaudratecomboBox->currentIndex());


        //連接信號
        connect(m_serial,&QSerialPort::readyRead,this,&MainWindow::readData);


        ui->serialPortNamecomboBox->setEnabled(false);
        ui->serialBaudratecomboBox->setEnabled(false);
        ui->serialOpenradioButton->toggle();


        ui->serialOnClickpushButton->setText(tr("關閉串口"));
    }
    else
    {
        //關閉串口
        m_serial->clear();
        m_serial->close();
        m_serial->deleteLater();


        //恢復設置使能
        ui->serialPortNamecomboBox->setEnabled(true);
        ui->serialBaudratecomboBox->setEnabled(true);
        ui->serialOpenradioButton->toggle();
        ui->serialOnClickpushButton->setText(tr("打開串口"));
    }
}


/*
*@brief:讀取數據函數
*@param:None
*@retval:None
*/
void MainWindow::readData()
{
    QByteArray data = m_serial->readAll();


    if(!data.isLower())
    {
        QString str = ui->serialReceivetextEdit->toPlainText();


//        str += tr(data);      //此寫法不支持中文
        str += QString::fromLocal8Bit(data);        //此寫法支持中文
        ui->serialReceivetextEdit->clear();
        ui->serialReceivetextEdit->append(str);
    }
}


/*
*@brief:清除接收窗口
*@param:None
*@retval:None
*/
void MainWindow::clearReceiveWindow()
{
    ui->serialReceivetextEdit->clear();
}


/*
*@brief:發送函數
*@param:None
*@retval:None
*/
void MainWindow::on_sendButtun_clicked()
{
//    m_serial->write(ui->serialSendtextEdit->toPlainText().toLatin1());      //此寫法不支持中文


    m_serial->write(ui->serialSendtextEdit->toPlainText().toLocal8Bit());   //此寫法支持中文
}


/*
*@brief:清除發送窗口
*@param:None
*@retval:None
*/
void MainWindow::clearSendWindow()
{
    ui->serialSendtextEdit->clear();
}

四、測試運行

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 串口
    +關注

    關注

    14

    文章

    1551

    瀏覽量

    76431
  • 源碼
    +關注

    關注

    8

    文章

    639

    瀏覽量

    29185
  • Qt
    Qt
    +關注

    關注

    1

    文章

    302

    瀏覽量

    37899
  • 界面設計
    +關注

    關注

    0

    文章

    22

    瀏覽量

    10480
收藏 人收藏

    評論

    相關推薦

    QT串口通信的簡單使用

    QT串口通信是上位機和下位機通信常用的通信方式, 也是學習QT必須學會的基礎知識, 這篇就簡單介紹一下QT串口通信的簡單使用.
    的頭像 發表于 01-15 09:27 ?1972次閱讀
    <b class='flag-5'>QT</b><b class='flag-5'>串口</b>通信的簡單使用

    利用QT來制作一個最基本的串口助手

    QT制作串口助手為什么要寫串口助手在學習單片機的過程中,經常需要使用串口來和電腦進行通信,有時還
    發表于 01-18 08:09

    【米爾MYD-YT507開發板試用體驗】ubuntu下QT串口助手開發調試

    我們還是先體驗下QT開發串口調試助手,這樣我們能用串口接一些傳感器了。首先使用QT5的
    發表于 08-03 11:05

    Qt串口通信專題教程

    這是一個關于在Qt Creator下進行串口通信軟件開發的專題教程,能夠幫助你快速的開發有關的串口應用。
    發表于 05-04 14:37 ?24次下載

    串口調試助手怎么用_串口調試助手使用方法

    串口是嵌入式開發和單片機開發中不可缺少的外設設備,通用也要運用于整個平臺。所以如何利用串口調試助手是十分重要的,接下來為大家介紹下如何使用
    發表于 11-28 16:22 ?7.3w次閱讀
    <b class='flag-5'>串口</b>調試<b class='flag-5'>助手</b>怎么用_<b class='flag-5'>串口</b>調試<b class='flag-5'>助手</b>使用方法

    開源的Qt串口助手的使用方法

    串口調試助手是一款用于串口調試的工具,目前網上存在很多個版本,功能都差不多,但穩定性有好有壞,如果只用于一般的串口調試,這些工具夠用了,如果想開發
    的頭像 發表于 02-02 10:37 ?4849次閱讀
    開源的<b class='flag-5'>Qt</b><b class='flag-5'>串口</b><b class='flag-5'>助手</b>的使用方法

    QT從零開始作單片機上位機-串口調試助手+波形顯示-設計QT串口助手界面,添加主窗口控件

    第二章 QT從零開始作單片機上位機-串口調試助手+波形顯示目錄第二章 QT從零開始作單片機上位機-串口調試
    發表于 01-12 19:10 ?17次下載
    <b class='flag-5'>QT</b>從零開始作單片機上位機-<b class='flag-5'>串口</b>調試<b class='flag-5'>助手</b>+波形顯示-設計<b class='flag-5'>QT</b><b class='flag-5'>串口</b><b class='flag-5'>助手</b>界面,添加主窗口控件

    基于QT的安卓手機藍牙APP開發

    前段時間用QT寫了一個串口調試助手,感覺還可以。因為QT是跨平臺的,同樣一套代碼可以在windows上面跑,也可以在linux上面跑,也可以在...
    發表于 01-25 18:43 ?14次下載
    基于<b class='flag-5'>QT</b>的安卓手機藍牙APP<b class='flag-5'>開發</b>

    Qt小項目之串口助手控制LED

    最近剛學了一點Qt開發上位機,嘗試著做個小軟件練練手。查找了很多資料,做了一個簡單的串口助手,可以實現串口基本發送和接收功能,支...
    發表于 01-26 18:21 ?2次下載
    <b class='flag-5'>Qt</b>小項目之<b class='flag-5'>串口</b><b class='flag-5'>助手</b>控制LED

    QT 串口示波器的串口調試助手功能

    串口調試助手功能: 支持傳統的串口調試助手的基本收發功能,同時可以刷新大量的數據而不卡頓 支持保存接收的數據 支持最大200條可編輯指令的設置,并用于多條發送
    發表于 07-07 15:26 ?2715次閱讀

    QT設計的網絡助手源碼

    QT設計的網絡助手源碼
    發表于 09-27 11:46 ?2次下載

    【飛凌OKA40i-C開發板試用體驗】QT實現串口助手

    本文來源電子發燒友社區,作者:劉建華, 帖子地址: https://bbs.elecfans.com/jishu_2308758_1_1.html 【目的】用QT實現一個串口助手。 因為我的項目
    的頭像 發表于 10-19 11:21 ?1044次閱讀
    【飛凌OKA40i-C<b class='flag-5'>開發</b>板試用體驗】<b class='flag-5'>QT</b>實現<b class='flag-5'>串口</b><b class='flag-5'>助手</b>

    【米爾MYD-YT507開發板試用體驗】ubuntu下QT串口助手開發調試

    ,因為這些都是QT自己本身就帶的功能,如果有3D應該還可以跑下QT 3D效果,本開發板的全志芯片也是帶了GPU的,顯示3D難度應該會好很多。本次的話我們還是先體驗下QT
    的頭像 發表于 10-26 15:04 ?1312次閱讀
    【米爾MYD-YT507<b class='flag-5'>開發</b>板試用體驗】ubuntu下<b class='flag-5'>QT</b><b class='flag-5'>串口</b><b class='flag-5'>助手</b><b class='flag-5'>開發</b>調試

    Qt5實現上位機與串口通信

    Qt助手內搜索:Qt Serial Port為串口的相關函數? 1.添加串口頭文件: # include //使用
    發表于 05-10 10:46 ?0次下載
    <b class='flag-5'>Qt</b>5實現上位機與<b class='flag-5'>串口</b>通信

    QT上位機開發串口助手(下)

    接著嵌入式QT上位機開發串口助手(上)來完善一下串口助手的功能,上一篇博客已經實現了自動獲取的
    發表于 05-29 16:49 ?2次下載
    <b class='flag-5'>QT</b>上位機<b class='flag-5'>開發</b>之<b class='flag-5'>串口</b><b class='flag-5'>助手</b>(下)
    主站蜘蛛池模板: 久久精品免费电影| 国产一区二区三区在线看片| 成人在线免费看片| 古代荡女丫鬟高H辣文纯肉| 国产精品人成在线播放新网站| 国产三级在线精品男人的天堂| 国产在线精品亚洲第一区| 久久国产精品永久网站| 毛茸茸womansex| 诱受H嗯啊巨肉舍友1V1| 中文字幕高清在线观看| www亚洲欲色成人久久精品| 国产成人精品综合在线观看| 狠狠干福利视频| 噜噜噜在线AV免费观看看| 秋霞最新高清无码鲁丝片| 午夜视频在线观看国产| 中文字幕人成人乱码亚洲AV| 成年女人免费影院播放| 韩国成人理伦片免费播放| 免费看欧美一级特黄a大片| 手机在线免费看毛片| 诱咪视频免费| 超碰97av 在线人人操| 国产又黄又粗又爽又色的视频软件| 久久综合给会久久狠狠狠| 日本乱hd高清videos| 亚洲中文字幕欧美自拍一区| av在线不卡中文网| 国产亚洲精品欧洲在线视频| 男人和女人全黄一级毛片| 无限资源网免费看| 97视频在线观看免费播放| 国产麻豆剧看黄在线观看| 美女张开腿露尿口给男人亲| 网友自拍区视频精品| 97超级碰碰人妻中文字幕| 国产免费麻传媒精品国产AV| 乱码午夜-极品国产内射| 玩高中女同桌肉色短丝袜脚文| 10分钟免费观看视频|