Qt實現UART串列埠除錯功能

2021-07-22 06:36:00 字數 3710 閱讀 4214

qt版本:qt4.8.6

外部包:qextserialport-1.2rc.zip

解壓後「/src」目錄下會有以下幾個檔案:
qextserialport.pri

qextserialport_p.h

qextserialport_global.h

qextserialport.h

qextserialenumerator_p.h

qextserialenumerator.h

qextserialport_win.cpp

qextserialport_unix.cpp

qextserialport.cpp

qextserialenumerator_win.cpp

qextserialenumerator_unix.cpp

qextserialenumerator_osx.cpp

qextserialenumerator_linux.cpp

qextserialenumerator.cpp

根據作業系統選擇需要的檔案,下面以windows環境舉例,介紹一下如何使用qt在windows環境下開發uart串列埠除錯功能。

首先通過qt設計師設計ui介面,主要是新增uart配置資訊

常見的包括串列埠、波特率、資料位、校驗位、停止位、超時時間、查詢模式,再新增乙個自動傳送的功能

//檢測裝置插拔,新增或刪除串列埠

connect(enumerator, signal(devicediscovered(qextportinfo)), slot(onportaddedorremoved()));

connect(enumerator, signal(deviceremoved(qextportinfo)), slot(onportaddedorremoved()));

connect(ui.bandratebox, signal(currentindexchanged(int)), slot(onbandratechanged(int)));

connect(ui.paritybox, signal(currentindexchanged(int)), slot(onparitychanged(int)));

connect(ui.databitsbox, signal(currentindexchanged(int)), slot(ondatabitschanged(int)));

connect(ui.stopbitsbox, signal(currentindexchanged(int)), slot(onstopbitschanged(int)));

connect(ui.querymodebox, signal(currentindexchanged(int)), slot(onquerymodechanged(int)));

connect(ui.timeoutbox, signal(valuechanged(int)), slot(ontimeoutchanged(int)));

connect(ui.portbox, signal(edittextchanged(qstring)), slot(onportnamechanged(qstring)));

connect(ui.openclosebutton, signal(clicked()), slot(onopenclosebuttonclicked()));

connect(ui.sendbutton, signal(clicked()), slot(onsendbuttonclicked()));

connect(timer, signal(timeout()), slot(onreadyread()));

connect(port, signal(readyread()), slot(onreadyread()));

connect(ui.autowritebox,signal(clicked()),this,slot(onautowriteclicked()));

//自動傳送功能

autotimer = new qtimer(this);

connect(autotimer,signal(timeout()),this,slot(onsendbuttonclicked()));

}void uarttrans::initial()

uarttrans::~uarttrans()

void uarttrans::onportnamechanged(const qstring & /*name*/)

else

ui.openclosebutton->settext("close");

}void uarttrans::onbandratechanged(int idx)

void uarttrans::onparitychanged(int idx)

void uarttrans::ondatabitschanged(int idx)

void uarttrans::onstopbitschanged(int idx)

void uarttrans::onquerymodechanged(int idx)

void uarttrans::ontimeoutchanged(int val)

void uarttrans::onopenclosebuttonclicked()

else

if (port->isopen() && port->querymode() == qextserialport::polling)

timer->start();

else

timer->stop();

}void uarttrans::onsendbuttonclicked()

void uarttrans::onreadyread()

}void uarttrans::onportaddedorremoved()

void uarttrans::onautowriteclicked()

else

}

QT實現串列埠除錯功能 QSerialPort類

1 簡介 本博文主要是介紹如何使用qt的串列埠類 qserialport 來實現串列埠的開發,使用這個類來實現串列埠的基本功能,比如如何查詢本機可用串列埠 com 開啟串列埠 設定串列埠波特率 設定資料位 設定校驗位 停止位等視窗屬性。還實現了十六進製制收發顯示資料,經過測試,本工程 可以在win7...

QT編寫串列埠除錯助手實現串列埠通訊

一 pro檔案新增串列埠 新增模組 qt serialport二 mainwindow.h 新增標頭檔案 include include例項化類,新增槽函式 按鈕可直接轉到槽,自己定義的槽函式要在private slots聲名 private qserialport serial private s...

模擬串列埠UART的實現

我所禱告的,就是要你們的愛心,在知識和見識上,多而又多,使你們能分辨是非,做誠實無過的人,直到 的日子。腓立比書 1 9 10 最近在調的mcu的型號為stm32f030,配置晶元相較之前的mcu都比較簡單,功能配置很順利。但是在寫串列埠程式的時候,發現串列埠一直不通,使用示波器也沒有波形。因為基本...