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

使用QtCreator C++編寫串口調(diào)試助手

這篇具有很好參考價值的文章主要介紹了使用QtCreator C++編寫串口調(diào)試助手。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Qt小白一枚,喜歡嵌入式應(yīng)用,以前都是使用別人的串口調(diào)試助手,學(xué)習(xí)了C++以后,自己也嘗試著做了簡單的串口調(diào)試助手,分享給大家吧,希望能幫助到大家,如果有錯誤,請大家指正。話不多說開干!

1.首先看一下我設(shè)計的界面(我這里比較簡單,大家可根據(jù)自己的需求進(jìn)行設(shè)計)

(界面設(shè)計的過程中,每一個控件的名稱最好進(jìn)行修改,便于后續(xù)控件太多不好區(qū)分,給控件命名的時候一定要就針對性,一下明白這個控件是干什么的。)

使用QtCreator  C++編寫串口調(diào)試助手

?2.首先看一下準(zhǔn)備工作。在pro文件中添加串口需要的文件

使用QtCreator  C++編寫串口調(diào)試助手

?3.widget.h文件 (看看代碼一睹為快)文章來源地址http://www.zghlxwxcb.cn/news/detail-457143.html

#ifndef WIDGET_H
#define WIDGET_H
#include <QSerialPort>
#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    QSerialPort *serialport;
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    //打開串口槽函數(shù)
    void on_port_openBt_clicked();
    //關(guān)閉串口槽函數(shù)

    void on_port_closeBt_clicked();
    //自定義的槽函數(shù)的聲明
    void serialreadtext();
//數(shù)據(jù)發(fā)送槽函數(shù)
    void on_data_sendBt_clicked();
//數(shù)據(jù)接受區(qū)和數(shù)據(jù)發(fā)送區(qū)清空槽函數(shù)
    void on_rev_clearBt_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

4.widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include<QSerialPortInfo>
#include <QMessageBox>
#include <QString>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{   serialport = new QSerialPort(this); //創(chuàng)建一個串口對象
    ui->setupUi(this);
    //這樣我們就獲取到 可用的串口名字了
    QStringList m_serialPortName;
    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
    {
        m_serialPortName << info.portName();
    }
    //添加串口到conbox控件中
    ui->port_comboBox->addItems(m_serialPortName);
    //接收數(shù)據(jù)需要自己關(guān)聯(lián)槽函數(shù)
    connect(serialport,SIGNAL(readyRead()),this , SLOT(serialreadtext()));
}

Widget::~Widget()
{
    delete ui;
}
//讀數(shù)據(jù)
void Widget::serialreadtext()
{
    QString buffer;
    buffer=QString(serialport->readAll());
    ui->revEdit->appendPlainText(buffer);
}
void Widget::on_port_openBt_clicked()
{
    QSerialPort::BaudRate baudRate;
    QSerialPort::DataBits dataBits;
    QSerialPort::Parity parity;
    QSerialPort::StopBits stopbits;
    //波特率
    if(ui->rate_comboBox->currentText()=="115200")
    {
        baudRate=QSerialPort::Baud115200;
    }else if(ui->rate_comboBox->currentText()=="9600")
    {
        baudRate=QSerialPort::Baud9600;

    }else {
        baudRate=QSerialPort::Baud4800;
    }
    //數(shù)據(jù)位
    if(ui->data_comboBox->currentText()=="8")
    {
        dataBits=QSerialPort::Data8;

    }else if(ui->data_comboBox->currentText()=="7")
    {
        dataBits=QSerialPort::Data7;
    }else if(ui->data_comboBox->currentText()=="6")
    {
        dataBits=QSerialPort::Data6;
    }else if (ui->data_comboBox->currentText()=="5")
    {
        dataBits=QSerialPort::Data5;
    }

    //停止位
    if(ui->stop_comboBox->currentText()=="1")
    {
        stopbits= QSerialPort::OneStop;
    } else if(ui->stop_comboBox->currentText()=="2")
    {
        stopbits= QSerialPort::TwoStop;
    }else if(ui->stop_comboBox->currentText()=="1.5")
    {
        stopbits= QSerialPort::OneAndHalfStop;
    }
    //校驗位
    if(ui->cheak_comboBox->currentText()=="None")
    {
        parity=QSerialPort::NoParity;
    }

    //1.配置端口號
    serialport->setPortName(ui->port_comboBox->currentText());
    //2.配置波特率
    serialport->setBaudRate(baudRate);
    //設(shè)置數(shù)據(jù)位
    serialport->setDataBits(dataBits);
    //設(shè)置校驗位
    serialport->setParity(parity);
    //停止位
    serialport->setStopBits(stopbits);
    if(serialport->isOpen())//如果串口已經(jīng)打開了 先給他關(guān)閉了
    {
        serialport->clear();
        serialport->close();
    }

    if(serialport->open(QIODevice::ReadWrite)==true)
    {
        QMessageBox::information(this ,"提示","串口打開成功");
    }else
    {
        QMessageBox::critical(this ,"提示","串口打開失敗");
    }
}
//關(guān)閉串口
void Widget::on_port_closeBt_clicked()
{
    QMessageBox::information(this ,"提示","串口關(guān)閉成功");
     serialport->close();
}
//發(fā)送數(shù)據(jù)
void Widget::on_data_sendBt_clicked()
{
    serialport->write(ui->sendEdit->text().toLocal8Bit().data());
}
//清空接受區(qū)
void Widget::on_rev_clearBt_clicked()
{
    ui->revEdit->clear();
}
5.好啦,完成上面的步驟,一個簡單的串口調(diào)試助手就完成了,大家快行動起來吧。
?

到了這里,關(guān)于使用QtCreator C++編寫串口調(diào)試助手的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • QT編寫的串口助手

    QT編寫的串口助手

    創(chuàng)建UI界面工程 找?guī)椭臋n 添加串口的宏

    2024年02月15日
    瀏覽(15)
  • 【ESP01S】使用串口調(diào)試助手,發(fā)送AT指令收回的是亂碼/重復(fù)一遍AT指令發(fā)回的問題

    【ESP01S】使用串口調(diào)試助手,發(fā)送AT指令收回的是亂碼/重復(fù)一遍AT指令發(fā)回的問題

    在使用ESP01S,外觀如下圖所示: 使用串口調(diào)試助手,發(fā)送AT指令出現(xiàn)異常情況,比如返回亂碼或者重復(fù)一遍用戶發(fā)送的內(nèi)容 根據(jù)文章的問題推測,原因主要有以下兩點: 1、硬件供電不足 2、固件燒錄問題 USB轉(zhuǎn)串口模塊的驅(qū)動能力很弱,所以首先就排除了用此模塊供電的方式

    2023年04月21日
    瀏覽(198)
  • VOFA+ 串口調(diào)試助手

    VOFA+ 串口調(diào)試助手

    人生如逆旅,我亦是行人。 最近看學(xué)習(xí)視頻看到一位博主用了一個十分酷、之前都沒怎么見過的串口調(diào)試助手,深深地被吸引了,然后去了解了一下,發(fā)現(xiàn)這款串口調(diào)試助手軟件還挺不錯的,最起碼比我之前用過的都要更酷,而且適合用來顯示波形,與我最近需要用到的數(shù)據(jù)

    2024年02月15日
    瀏覽(18)
  • 【用MFC寫串口調(diào)試助手】

    【用MFC寫串口調(diào)試助手】

    ID Type Member 說明 IDC_BUTTON_SERCHSEL 檢測串口按鈕 IDC_BUTTON_OPENSEL 打開串口按鈕 IDC_BUTTON_CLOSESEL 關(guān)閉串口按鈕 IDC_BUTTON_CLEARGETDATA 清空接收區(qū)按鈕 IDC_BUTTON_SENDDATA 發(fā)送數(shù)據(jù)按鈕 IDC_BUTTON_CLEARSENDDATA 清空發(fā)送區(qū)按鈕 IDC_COMBO_CHOOSESEL CComboBox m_COMBO_ChooseSel 串口選擇下拉框 IDC_COMBO_BOTRAT CCo

    2024年02月07日
    瀏覽(23)
  • 串口調(diào)試助手 安卓版 附下載地址

    串口調(diào)試助手 安卓版 附下載地址

    平時工作中和硬件同事對接的比較多,軟件和硬件的通訊,串口用的也比較多的。在網(wǎng)上找了很多串口調(diào)試工具,大都年代久遠(yuǎn),沒有繼續(xù)更新維護(hù)的了。 于是,自己抽空寫了一個:串口調(diào)試助手。基于Android-SerialPort-Api修改,?最低支持安卓5.x, 支持armeabi-v7a, arm64-v8a, x86, x

    2024年02月05日
    瀏覽(17)
  • 關(guān)于串口調(diào)試助手上面的DTR和RTS

    關(guān)于串口調(diào)試助手上面的DTR和RTS

    開發(fā)調(diào)試過程中,突然XCOM串口調(diào)試助手無法接發(fā)數(shù)據(jù),而用了sscom卻可以實現(xiàn)正常功能,emo了很久,對比了兩個軟件對串口的設(shè)置,包括波特率,停止位,校驗位等設(shè)置,也沒發(fā)現(xiàn)異端,以為是sscom這個軟件禁用了XCOM。。。。。。。。。 后來仔細(xì)比對發(fā)現(xiàn),XCOM的DTR選型被取

    2024年02月11日
    瀏覽(17)
  • 藍(lán)牙串口調(diào)試助手通過PC藍(lán)牙發(fā)送數(shù)據(jù)給ESP32同時在串口上顯示

    藍(lán)牙串口調(diào)試助手通過PC藍(lán)牙發(fā)送數(shù)據(jù)給ESP32同時在串口上顯示

    OK,好久沒有更新Blog啦 今天把之前積累的代碼放上,給需要學(xué)習(xí)的程序猿們使用 我還是不太喜歡寫文字,倒是比較喜歡客套,哈哈 硬件圖: ESP32和USB-micro-B數(shù)據(jù)線一根 藍(lán)牙串口調(diào)試助手通過PC藍(lán)牙發(fā)送數(shù)據(jù)給ESP32同時在串口上顯示 具體代碼如下:

    2024年02月09日
    瀏覽(24)
  • Rust UI開發(fā)(四):iced中如何添加菜單欄(串口調(diào)試助手)

    Rust UI開發(fā)(四):iced中如何添加菜單欄(串口調(diào)試助手)

    注:此文適合于對rust有一些了解的朋友 iced是一個跨平臺的GUI庫,用于為rust語言程序構(gòu)建UI界面。 這是一個系列博文,本文是第四篇,前三篇鏈接: 1、Rust UI開發(fā)(一):使用iced構(gòu)建UI時,如何在界面顯示中文字符 2、Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標(biāo) 3、Rust

    2024年02月03日
    瀏覽(40)
  • QT串口調(diào)試助手開發(fā)教程:上位機(jī)接收數(shù)據(jù)解析數(shù)據(jù)幀+多通道波形顯示+數(shù)據(jù)保存

    QT串口調(diào)試助手開發(fā)教程:上位機(jī)接收數(shù)據(jù)解析數(shù)據(jù)幀+多通道波形顯示+數(shù)據(jù)保存

    在該設(shè)計中主要需要解決的問題就是接收單片機(jī)采集到的數(shù)據(jù)并在上位機(jī)將數(shù)字實時的通過波形顯示出來,然后上位機(jī)要有保存下數(shù)據(jù)文件的功能,便于后續(xù)的軟件讀取數(shù)據(jù)做進(jìn)一步的分析處理。有些人吃相難看,無底線,無道德,鑒于串口上位機(jī)會被廣泛使用,撰寫該教程

    2024年02月07日
    瀏覽(24)
  • 【友善串口調(diào)試助手Serial Port Utility以ASCII形式發(fā)送字節(jié)數(shù)據(jù)顯示0D的問題】

    【友善串口調(diào)試助手Serial Port Utility以ASCII形式發(fā)送字節(jié)數(shù)據(jù)顯示0D的問題】

    在做DS18B20溫度檢測時自己想通過UART串口接收上位機(jī)發(fā)出的指令來進(jìn)行相應(yīng)的操作,但是第一次上板未能成功,所以回過頭來逐步排查問題 自己考慮FPGA與DS18B20數(shù)據(jù)交互對DS18B20的控制可分為三類:復(fù)位、寫操作與讀操作,每種操作后面還需跟相應(yīng)具體的指令,如SKIP ROM [CCh]、

    2024年04月28日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包