www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > 電子電路開發(fā)學(xué)習(xí)
[導(dǎo)讀]點(diǎn)擊上方「嵌入式大雜燴」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!一、前言大家好,我是ZhengN,本次來教大家編寫一個(gè)基于QT的簡(jiǎn)單的上位機(jī)。學(xué)習(xí)一個(gè)新的東西我們都從最基礎(chǔ)地實(shí)例開始,比如學(xué)習(xí)C語言我們會(huì)從編寫一個(gè)hello程序開始、學(xué)習(xí)嵌入式我們從點(diǎn)燈開始。同樣的,我們也從...

點(diǎn)擊上方「嵌入式大雜燴」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!

一、前言

大家好,我是ZhengN,本次來教大家編寫一個(gè)基于QT的簡(jiǎn)單的上位機(jī)。

學(xué)習(xí)一個(gè)新的東西我們都從最基礎(chǔ)地實(shí)例開始,比如學(xué)習(xí)C語言我們會(huì)從編寫一個(gè)hello程序開始、學(xué)習(xí)嵌入式我們從點(diǎn)燈開始。

同樣的,我們也從編寫一個(gè)簡(jiǎn)單的基于QT的上位機(jī)來體會(huì)體會(huì)上位機(jī)開發(fā)及認(rèn)識(shí)認(rèn)識(shí)QT。

我們本次實(shí)現(xiàn)的上位機(jī)的功能很簡(jiǎn)單:上位機(jī)通過串口來控制開發(fā)板上的一個(gè)LED的亮滅。界面如:

演示視頻:

二、QT環(huán)境搭建

在開始編寫上位機(jī)之前我們先來一起搭建一下QT開發(fā)環(huán)境(不然就不是手把手了,哈哈)。往期推文?QT | 詳解Qt的幾種開發(fā)方式?中有介紹到QT的兩種開發(fā)環(huán)境:

  • 使用VS QT
  • 使用Qt Creator
這里我們選擇直接使用QT_Creator的方式。

Qt Creator是一個(gè)用于Qt開發(fā)的輕量級(jí)跨平臺(tái)集成開發(fā)環(huán)境。

Qt Creator可帶來兩大關(guān)鍵益處:

  • 提供首個(gè)專為支持跨平臺(tái)開發(fā)而設(shè)計(jì)的集成開發(fā)環(huán)境 (IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。
  • 即使不開發(fā)Qt應(yīng)用程序,Qt Creator也是一個(gè)簡(jiǎn)單易用且功能強(qiáng)大的IDE。
下面我們來一起安裝Qt Creator。

1、注冊(cè)qt賬號(hào)

我們需要先注冊(cè)一個(gè)QT賬號(hào),后面安裝Qt Creator的時(shí)候會(huì)用到。注冊(cè)賬號(hào)的地址為:

https://www.qt.io/zh-cn/

2、下載QT_Creator并安裝

我們?cè)赪indows上進(jìn)行開發(fā),安裝Windows版本的Qt Creator。下載地址:

https://download.qt.io/new_archive/qt/5.11/5.11.3/


下載得到qt-opensource-windows-x86-5.11.3.exe。然后雙擊安裝,第二步需要輸入賬號(hào)密碼,把我們上面注冊(cè)好的賬號(hào)密碼填入即可。

接下來還需要選擇安裝組件,根據(jù)自己需要進(jìn)行選擇安裝,我安裝的組件如:


安裝完成之后我們桌面上并沒有Qt Creator的快捷方式,需要自己創(chuàng)建。找到Qt Creator的安裝路徑,然后把Qt Creator發(fā)送到桌面快捷方式即可。如:

3、驗(yàn)證QT_Creator是否安裝成功

我們創(chuàng)建一個(gè)簡(jiǎn)單的C 工程來驗(yàn)證一下Qt Creator是否安裝成功。

Qt Creator搭建好之后我們接下來開始編寫我們的上位機(jī)。

三、編寫一個(gè)簡(jiǎn)單的上位機(jī)

編寫這個(gè)簡(jiǎn)單的上位機(jī)我們需要經(jīng)過一下幾個(gè)步驟:

  • 上位機(jī)界面設(shè)計(jì)。
  • 上位機(jī)邏輯代碼編寫。
  • 添加上位機(jī)圖標(biāo)。
  • 上位機(jī)程序的打包。
  • 上位機(jī)測(cè)試驗(yàn)證。

1、新建一個(gè)serial_led工程


這里需要注意的一點(diǎn)是:工程名及工程路徑不要有中文字符。

另外,QT中有三種基類,這里我們選擇QWidget類。QT的三個(gè)基類如:

  • QMainWindow類:提供一個(gè)帶有菜單條,工具條和一個(gè)狀態(tài)條的主應(yīng)用程序窗口。
  • QWidget類:所有用戶界面對(duì)象的基類,窗口部件是用戶界面的一個(gè)基本單元,它從窗口系統(tǒng)接收鼠標(biāo),鍵盤和其他消息,并在屏幕上繪制自己。
  • QDialog類:對(duì)話框窗口的基類,對(duì)話框窗口主要用于短期任務(wù)和用戶進(jìn)行短期通訊的頂級(jí)窗口,QDialog可以是模態(tài)對(duì)話框或者是非模態(tài)對(duì)話框。
我們創(chuàng)建的工程如:


其中,項(xiàng)目文件.pro文件是用來告訴qmake關(guān)于為這個(gè)應(yīng)用程序創(chuàng)建makefile所需要的細(xì)節(jié)。例如,一個(gè)源文件和頭文件的列表、任何應(yīng)用程序特定配置。例如,一個(gè)必需鏈接的額外庫或者一個(gè)額外的包含路徑、都應(yīng)該放到項(xiàng)目文件中。

2、上位機(jī)界面設(shè)計(jì)

Qt 一個(gè)可視化的界面設(shè)計(jì)工具:Qt 設(shè)計(jì)器(Qt Designer)。我們雙擊.ui文件就可以進(jìn)入Qt Designer,在Qt Designer中我們可以通過拖動(dòng)控件的方式來設(shè)計(jì)我們的界面,整個(gè)界面如:


我們從左側(cè)的控件區(qū)把我們需要的控件拖動(dòng)到界面編輯區(qū)中,我們這個(gè)簡(jiǎn)單地上位機(jī)用到的控件如:


這里需要注意的是波特率這個(gè)下拉框需要雙擊設(shè)置一些備選配置,如:


大家可以在左邊地控件區(qū)找到這三種控件拖動(dòng)到界面編輯器進(jìn)行修改、布局即可。

其中,布局可通過如下組件調(diào)整:


這幾個(gè)組件的功能如:


具體地用法大家可以自己去實(shí)操一下。

另外,我們需要給我們使用的控件重新命名,在右側(cè)的對(duì)象管理區(qū)進(jìn)行操作。命名為有意義的名字,因?yàn)楹竺婢帉懘a會(huì)用到。有意義的名字利于編寫易懂的代碼。比如我們修改的名字如:

最后,控件的屬性可根據(jù)需要在屬性區(qū)進(jìn)行調(diào)整。

3、上位機(jī)邏輯代碼編寫

(1)添加串口庫、包含串口相關(guān)頭文件

serial_led.pro文件添加串口庫:

QT? =?core?gui?serialport


widget.h文件包含串口頭文件:

#include?
#include?

  • QSerialPort 類提供了操作串口的各種接口。

  • QSerialPortInfo 是一個(gè)輔助類,可以提供計(jì)算機(jī)中可用串口的各種信息。

(2)添加QSerialPort成員

在widget.h的Widget類中添加一個(gè)QSerialPort成員:

(3)創(chuàng)建串口對(duì)象、搜索所有可用串口

在Widget構(gòu)造函數(shù)中創(chuàng)建一個(gè)串口對(duì)象并搜索所有可用串口:

Widget::Widget(QWidget?*parent)?:
????QWidget(parent),
????ui(new?Ui::Widget)
{
????QStringList?serialNamePort;

????ui->setupUi(this);
????this->setWindowTitle("serial_led");

????/*?創(chuàng)建一個(gè)串口對(duì)象?*/
????serialPort?=?new?QSerialPort(this);

????/*?搜索所有可用串口?*/
????foreach?(const?QSerialPortInfo?
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉