甘雨绑十字架_五月天婷亚洲天综合网手机_国产成人年无码av片在线观看_亚洲艳妇自拍视频_51国产日韩欧美_樱桃视频app带你看世界_欧美成人综合网播九公社_精品人妻无码一区二区色欲AⅤ_啪啪免费无码高清_最新熟女倶楽部4566

上位機(jī)軟件開(kāi)發(fā)教程qt(上位機(jī)開(kāi)發(fā)用什么軟件)

軟件開(kāi)發(fā) 3165
今天給各位分享上位機(jī)軟件開(kāi)發(fā)教程qt的知識(shí),其中也會(huì)對(duì)上位機(jī)開(kāi)發(fā)用什么軟件進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、如何用QT編一個(gè)串口調(diào)試的上位機(jī)界面

今天給各位分享上位機(jī)軟件開(kāi)發(fā)教程qt的知識(shí),其中也會(huì)對(duì)上位機(jī)開(kāi)發(fā)用什么軟件進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!

本文目錄一覽:

如何用QT編一個(gè)串口調(diào)試的上位機(jī)界面

QT我沒(méi)有用過(guò)

界面自己想辦法

只要是c/c++編程,都可以通過(guò)調(diào)用系統(tǒng)API與串口通信

有本VC與串口通信的書(shū),里面也有提到用C語(yǔ)言操作串口的

建議看這本書(shū)

VisualC++/TurboC串口通信編程實(shí)踐

中控室的上位機(jī)曲線(xiàn)怎么改

第二課 FZHOP硬件版上位機(jī)教程-曲線(xiàn)圖(CP1H版) 原創(chuàng)

2021-01-18 22:30:27

cxbmsdn

碼齡14年

關(guān)注

大家好,今天我給大家講解下FZHOP硬件版曲線(xiàn)圖的使用方法。

曲線(xiàn)圖是我們工控行業(yè)經(jīng)常使用的一種數(shù)據(jù)顯示對(duì)象,可以方便的讓工程人員了解到設(shè)備采集數(shù)據(jù)的變化過(guò)程。

我們的FZHOP硬件版上位機(jī)工具也具備強(qiáng)大的曲線(xiàn)圖展示能力,下面我就來(lái)給大家講講。

首先我們打開(kāi)配置工具

打開(kāi)配置工具

然后我們選擇 曲線(xiàn)圖配置 頁(yè)面

曲線(xiàn)圖配置

可以看到有一個(gè)默認(rèn)的曲線(xiàn)圖對(duì)象以及存在于我們的配置頁(yè)面中,這個(gè)就是我們的PLC實(shí)時(shí)曲線(xiàn)對(duì)象,用于實(shí)時(shí)顯示采集到的PLC數(shù)據(jù)。

接下來(lái)我們就要新增曲線(xiàn)圖對(duì)象了,點(diǎn)擊新增曲線(xiàn)圖按鈕

新增曲線(xiàn)圖

這時(shí)候我們就獲得了一個(gè)新的曲線(xiàn)圖對(duì)象(新的繪圖源__44ff,這個(gè)44ff是繪圖源的ID),如圖:

新的曲線(xiàn)圖對(duì)象

新的繪圖源__44ff這個(gè)曲線(xiàn)圖的名稱(chēng)是不符合我們的需求的。。我們得把他改改。

我們雙擊這個(gè)名稱(chēng)就可以進(jìn)入編輯模式了

進(jìn)入編輯模式

進(jìn)入編輯模式后,我們就可以輸入我們想要的曲線(xiàn)圖名稱(chēng),比如:測(cè)試曲線(xiàn)圖1

修改曲線(xiàn)圖名稱(chēng)

有了曲線(xiàn)圖對(duì)象,我們就可以開(kāi)始給這個(gè)對(duì)象添加屬性了。FZHOP的曲線(xiàn)圖對(duì)象分為實(shí)時(shí)曲線(xiàn)和XY曲線(xiàn)兩種。

實(shí)時(shí)曲線(xiàn)圖的橫坐標(biāo)是時(shí)間軸,縱坐標(biāo)是我們綁定的采樣源數(shù)據(jù),主要用來(lái)表達(dá)數(shù)據(jù)和時(shí)間的關(guān)系。我們默認(rèn)配置的PLC實(shí)時(shí)曲線(xiàn)對(duì)象就是一個(gè)實(shí)時(shí)曲線(xiàn)圖,它包含了我們采集的2路編碼器數(shù)據(jù)和4路模擬量數(shù)據(jù)通道。

XY曲線(xiàn)圖則是由用戶(hù)自己根據(jù)需求,從綁定的采樣源數(shù)據(jù)通道中選擇2個(gè)通道,分別配置到X軸和Y軸中進(jìn)行繪圖。主要用來(lái)表達(dá)選擇的2個(gè)通道數(shù)據(jù)之間的關(guān)系。

實(shí)時(shí)曲線(xiàn)圖配置:

我們將測(cè)試曲線(xiàn)圖1配置為一個(gè)實(shí)時(shí)曲線(xiàn),并為其添加數(shù)據(jù)通道

啊。我們的曲線(xiàn)圖新增后默認(rèn)就是實(shí)時(shí)曲線(xiàn)模式,所以不用做更改。。

所以我們直接去添加通道吧。

直接點(diǎn)擊添加曲線(xiàn)通道按鈕,就可以給我們的曲線(xiàn)圖添加數(shù)據(jù)通道了。

添加曲線(xiàn)通道

(PS:FZHOP的采樣數(shù)據(jù)流我也做下簡(jiǎn)單說(shuō)明吧。FZHOP首先通過(guò)設(shè)備數(shù)據(jù)采集的回調(diào)函數(shù),獲取最原始的采樣數(shù)據(jù),然后這些采樣數(shù)據(jù)會(huì)流入到我們的數(shù)據(jù)源中,數(shù)據(jù)源會(huì)根據(jù)配置通道,對(duì)設(shè)備采樣數(shù)據(jù)進(jìn)行篩選和處理,然后導(dǎo)入到我們的采樣源中。如果采樣源配置為設(shè)備采樣模式,那么采樣源獲取的數(shù)據(jù)就會(huì)直接傳入到綁定的曲線(xiàn)圖繪制通道中,如果采樣源配置為程序采樣模式,則會(huì)把不同設(shè)備的采集數(shù)據(jù)同步后,再傳入到綁定的曲線(xiàn)圖繪制通道中。簡(jiǎn)單來(lái)說(shuō)就是 設(shè)備數(shù)據(jù)(原始數(shù)據(jù))-數(shù)據(jù)源(數(shù)據(jù)處理)-采樣源(數(shù)據(jù)同步)-繪圖源(曲線(xiàn)圖))

添加曲線(xiàn)通道1

可以看到我們添加了曲線(xiàn)通道后,默認(rèn)的都是時(shí)間通道,這個(gè)時(shí)候,我們就需要去編輯我們的通道了。其實(shí)很簡(jiǎn)單,就是雙擊通道名稱(chēng),然后在彈出的下拉菜單里選擇需要顯示的通道名稱(chēng)即可。通道名稱(chēng)是在我們的數(shù)據(jù)源配置頁(yè)面進(jìn)行命名的

好了現(xiàn)在我們就完成了一個(gè)曲線(xiàn)圖的主要配置。至于其他的時(shí)間軸格式、時(shí)間軸范圍、數(shù)值軸上下限我們都可以不用去管。因?yàn)榍€(xiàn)圖本身會(huì)根據(jù)數(shù)據(jù)進(jìn)行自適應(yīng)。我們盡量用少的參數(shù)去實(shí)現(xiàn)用戶(hù)的需求,降低開(kāi)發(fā)難度。

到這里我們還不能直接看到我們的曲線(xiàn)圖,為什么呢?因?yàn)镕ZHOP上位機(jī)程序是一個(gè)先配置,后操作的程序。我們已經(jīng)在配置工具里設(shè)置好了參數(shù),但是如果沒(méi)有將參數(shù)生成到我們的運(yùn)行程序參數(shù)配置文件里,那么運(yùn)行程序是不會(huì)加載我們現(xiàn)在配置的數(shù)據(jù)的。所以要想看到我們的配置效果,我們得先點(diǎn)擊生成按鈕,將我們的配置數(shù)據(jù)生成到運(yùn)行程序參數(shù)配置文件里。

生成按鈕

點(diǎn)擊完生成按鈕后我們就可以去運(yùn)行程序看看效果了?。?!

查看實(shí)時(shí)曲線(xiàn)

現(xiàn)在我們是不是就看到了我們剛才配置的曲線(xiàn)圖呢!!配合FZHOP的實(shí)時(shí)動(dòng)態(tài)布局功能,可以很方便的進(jìn)行界面對(duì)象調(diào)整。

下面我們來(lái)看看XY曲線(xiàn)圖配置。

XY曲線(xiàn)圖配置:

我新增一個(gè)測(cè)試曲線(xiàn)圖2對(duì)象,然后把它的模式配置為XY曲線(xiàn),之后我把X通道配置為編碼器1,把Y通道配置為模擬量1。

新增XY曲線(xiàn)

然后我們生成并運(yùn)行看看效果?。? 是不是很簡(jiǎn)單呢?我們的XY曲線(xiàn)庫(kù)可以達(dá)到10萬(wàn)點(diǎn)的實(shí)時(shí)數(shù)據(jù)顯示能力,這是個(gè)什么概念呢??按照現(xiàn)有的每秒100點(diǎn)的數(shù)據(jù)采集速度,我們的曲線(xiàn)圖支持長(zhǎng)達(dá)1000秒的數(shù)據(jù)寫(xiě)入時(shí)間。所以大家在設(shè)計(jì)自己的上位機(jī)程序的時(shí)候就不會(huì)有太多顧慮啦,直接在需要時(shí)啟動(dòng)曲線(xiàn)繪制,在測(cè)試結(jié)束時(shí)停止曲線(xiàn)繪制即可。

查看XY曲線(xiàn)圖

之前忘了保存布局了。。。所以啟動(dòng)后界面沒(méi)有變成前面配置的。。布局保存在菜單欄 布局菜單中

保存布局

defulat.Layout文件就是我們的程序啟動(dòng)布局文件,如果要讓程序啟動(dòng)就顯示當(dāng)前布局,那么就把布局文件保存為這個(gè)文件就可以了

今天的課程就給大家介紹到這里啦,有沒(méi)太清楚的同學(xué)可以加QQ群209783211,在里面提問(wèn)我會(huì)詳細(xì)解答哦。

打開(kāi)CSDN APP,看更多技術(shù)內(nèi)容

工業(yè)級(jí)串口Modbus數(shù)據(jù)繪制曲線(xiàn)及上位機(jī)監(jiān)控軟件DotTrend

工業(yè)級(jí)串口Modbus數(shù)據(jù)繪制曲線(xiàn)及上位機(jī)監(jiān)控軟件DotTrend 1. 軟件概述 DotTrend是一款全新設(shè)計(jì)開(kāi)發(fā)的軟件(原創(chuàng)),理論上可用于監(jiān)控所有遵守Modbus標(biāo)準(zhǔn)協(xié)議的設(shè)備,便于開(kāi)發(fā)、測(cè)試和服務(wù)人員獲取設(shè)備數(shù)據(jù)并進(jìn)行分析。本軟件支持Modbus RTU(RS485...

繼續(xù)訪問(wèn)

C#上位機(jī)源代碼,采集西門(mén)子200smart溫度數(shù)據(jù)并顯示波形曲線(xiàn)

C#上位機(jī)源代碼,采集西門(mén)子200smart溫度數(shù)據(jù)并顯示波形曲線(xiàn),溫度到達(dá)上限值或下限值進(jìn)行報(bào)警提示。 采集的數(shù)據(jù)每天生成一個(gè)excel報(bào)表,全套源代碼

繼續(xù)訪問(wèn)

接收串口數(shù)據(jù)并進(jìn)行處理和畫(huà)圖上位機(jī)軟件

可以接收串口數(shù)據(jù),將16進(jìn)制轉(zhuǎn)化10進(jìn)制,并用列表顯示所有數(shù)據(jù)的 應(yīng)力和沉降量 在測(cè)試數(shù)據(jù)里,可以根據(jù)接收到的數(shù)據(jù),顯示所有數(shù)據(jù)的序號(hào),選擇相應(yīng)的序號(hào)值,可以看出對(duì)應(yīng)的 應(yīng)力和沉降量。 計(jì)算出了 a0 a1 a2的系數(shù) 畫(huà)出了圖 實(shí)現(xiàn)了打開(kāi)和保存功能。格式為txt文件,保存的是原始數(shù)據(jù)。 增加保存預(yù)覽,完全 可以打印 到這里程序基本完成,但是還有好多需要完善的地方。 入門(mén)的可以看看

第四課 FZHOP硬件版上位機(jī)教程-曲線(xiàn)圖-波峰波谷取值(CP1H版)

大家好,前面我們了解了FZHOP硬件版的動(dòng)作步操作方法(不熟悉的同學(xué)可以先回去看看第三課),現(xiàn)在我們可以來(lái)繼續(xù)我們的曲線(xiàn)圖學(xué)習(xí)了 在工業(yè)應(yīng)用控制中,我們經(jīng)常需要對(duì)曲線(xiàn)的波峰或者波谷的峰值進(jìn)行計(jì)算,用于和產(chǎn)品參數(shù)進(jìn)行比對(duì),以判斷產(chǎn)品是否合格。 今天我們就來(lái)看看FZHOP硬件版如何實(shí)現(xiàn)這個(gè)操作吧。 首先我們啟動(dòng)應(yīng)用程序 如圖所示: 這里需要說(shuō)明一下,我們的曲線(xiàn)操作都是針對(duì)XY曲線(xiàn)圖對(duì)象進(jìn)行的,所以我們以XY曲線(xiàn)圖《測(cè)試曲線(xiàn)圖2》進(jìn)...

繼續(xù)訪問(wèn)

VS上位機(jī)開(kāi)發(fā)——曲線(xiàn)顯示_柒壹漆的博客_visualstudio...

如:LineItem myCurve = myPane.AddCurve(“曲線(xiàn)1”, list1, Color.Red, SymbolType.Circle); 四、程序打包 在VS里面調(diào)試需要依賴(lài)VS的環(huán)境,但是我們做好的上位機(jī)實(shí)際運(yùn)行的環(huán)境可能并沒(méi)有安裝VS,因此需要把調(diào)試好的軟件打包成通用的...

繼續(xù)訪問(wèn)

c#實(shí)現(xiàn)上位機(jī)數(shù)據(jù)采集的項(xiàng)目總結(jié)_不知今夕何夕的博客_上位機(jī)...

使用modbus協(xié)議,PLC基本不用寫(xiě)通訊程序,而上位機(jī)可以直接自己確認(rèn)對(duì)方是否收到數(shù)據(jù),再確認(rèn)是否給對(duì)方重發(fā)一次。這個(gè)項(xiàng)目只要求采集數(shù)據(jù),因?yàn)樽x取的頻率高于數(shù)據(jù)變化,所以偶爾讀不到都不影響,使用modbus就更合適了。

繼續(xù)訪問(wèn)

讀取串口數(shù)據(jù)并畫(huà)實(shí)時(shí)曲線(xiàn)的VC++程序源碼 上位機(jī)源碼

讀取串口數(shù)據(jù)并畫(huà)實(shí)時(shí)曲線(xiàn)的VC++程序源碼 上位機(jī)源碼

上位機(jī)源碼--讀取串口數(shù)據(jù)并畫(huà)實(shí)時(shí)曲線(xiàn)的vc++源程序

上位機(jī)源碼--讀取串口數(shù)據(jù)并畫(huà)實(shí)時(shí)曲線(xiàn)的vc++源程序,自己做的一點(diǎn)小小的嘗試,有實(shí)例代碼,在vc6下編譯通過(guò)希望對(duì)大家學(xué)習(xí)有幫助。

熱門(mén)推薦 VS2015編寫(xiě)的MFC上位機(jī),波特率可調(diào),可動(dòng)態(tài)顯示曲線(xiàn),可顯示三維

近期做一個(gè)項(xiàng)目正好涉及MFC編寫(xiě)串口上位機(jī),主要用于動(dòng)態(tài)顯示曲線(xiàn)和陀螺儀三維信息,想做飛思卡爾或者四旋翼的小伙伴可以借鑒一下,首先貼個(gè)結(jié)果圖: 下面來(lái)簡(jiǎn)單講解一下這個(gè)上位機(jī)的核心步驟: 1、首先新建一個(gè)串口通信的程序,網(wǎng)上的示例代碼有很多,詳細(xì)的教學(xué)文檔下載: 2、自動(dòng)搜索可用串口 ...

繼續(xù)訪問(wèn)

C-V測(cè)試儀中上位機(jī)串口采集數(shù)據(jù)采集

if(fd.DoModal()==IDOK) { m_filename=fd.GetPathName(); CFile datafile; datafile.Open(m_filename,CFile::modeCreate|CFile::modeReadWrite); datafile.Write("編號(hào) 電壓值 電容值/

繼續(xù)訪問(wèn)

qt上位機(jī),將下位機(jī)發(fā)送數(shù)據(jù)解碼顯示實(shí)時(shí)曲線(xiàn)

為同學(xué)寫(xiě)的上位機(jī),用于調(diào)試參數(shù),觀察采集信息變化狀態(tài)。

繼續(xù)訪問(wèn)

第一課 FZHOP硬件版上位機(jī)簡(jiǎn)介(CP1H版)

大家好,今天我給大家推薦一款非常易用和強(qiáng)大的上位機(jī)產(chǎn)品,F(xiàn)ZHOP硬件版(CP1H版)。 為什么叫CP1H版呢?其實(shí)就是基于歐姆龍CP1H-XA-40DT這款PLC而開(kāi)發(fā)的上位機(jī)開(kāi)發(fā)工具。 熟悉CP1H-XA-40DT這款PLC的朋友都知道,這個(gè)PLC非常的簡(jiǎn)單易用,且功能配置豐富。 這款PLC具備4路運(yùn)動(dòng)控制(100K脈沖輸出和100K脈沖輸入功能)、4路12000分辨率的模擬量采集功能(電壓電流都能采)、2路模擬量輸出控制、24路數(shù)字輸入端口、16路數(shù)字輸出端口,然...

繼續(xù)訪問(wèn)

最新發(fā)布 第五課 FZHOP硬件版上位機(jī)教程-曲線(xiàn)圖-拐點(diǎn)取值(CP1H版)

大家好,上次我們學(xué)習(xí)了曲線(xiàn)圖波峰波谷取值算法,今天我們來(lái)學(xué)習(xí)下工控行業(yè)用得比較多的拐點(diǎn)取值。 好了廢話(huà)少說(shuō),直接打開(kāi)軟件導(dǎo)入 《找拐點(diǎn)測(cè)試曲線(xiàn).xlsx》 導(dǎo)入找拐點(diǎn)測(cè)試曲線(xiàn) 然后我們直接進(jìn)入動(dòng)作步界面,新建根節(jié)點(diǎn)和動(dòng)作子節(jié)點(diǎn) 新建動(dòng)作步節(jié)點(diǎn) 現(xiàn)在我們選中 節(jié)點(diǎn) 找拐點(diǎn) 然后點(diǎn)擊鼠標(biāo)右鍵,在右鍵菜單中選擇編輯動(dòng)作步,然后按如下步驟找到拐點(diǎn)取值功能指令:動(dòng)作步編輯頁(yè)面-模塊選擇-功能曲線(xiàn)-功能指令-...

繼續(xù)訪問(wèn)

第三課 FZHOP硬件版上位機(jī)教程-動(dòng)作步操作(CP1H版)

大家好,上期給大家介紹了FZHOP硬件版的曲線(xiàn)圖功能,本來(lái)這期我打算講解曲線(xiàn)圖的一些應(yīng)用方法,然后發(fā)現(xiàn)得先讓大家學(xué)會(huì)動(dòng)作步操作,才能繼續(xù)后面的一些教學(xué)了。 那么我們就來(lái)了解下FZHOP硬件版的動(dòng)作步如何操作吧 首先打開(kāi)配置工具,然后運(yùn)行我們的應(yīng)用程序并切換到動(dòng)作步界面 動(dòng)作步界面里面會(huì)多了2個(gè)曲線(xiàn)圖??!這是由于我們之前添加的曲線(xiàn)圖,只對(duì)defulat.Layout文件進(jìn)行了布局配置,而其他的布局文件沒(méi)有對(duì)這2個(gè)曲線(xiàn)圖進(jìn)行配置,所以我們切換界面...

繼續(xù)訪問(wèn)

C#寫(xiě)上位機(jī)中寫(xiě)曲線(xiàn)圖的知識(shí)點(diǎn)(VS2019-WPF)

最近在寫(xiě)一個(gè)上位機(jī),為了與下位機(jī)軟件串口進(jìn)行通信以及一些數(shù)據(jù)的形象顯示,做到曲線(xiàn)圖這一塊的時(shí)候出現(xiàn)了一些問(wèn)題,我用的是VS2019(個(gè)人不能吐槽VS2019新版本,因?yàn)槠綍r(shí)也

正點(diǎn)原子linux開(kāi)發(fā)板怎么調(diào)試

ui

正點(diǎn)原子Linux開(kāi)發(fā)板——Qt串口上位機(jī)實(shí)驗(yàn)

門(mén)牙會(huì)稍息

原創(chuàng)

關(guān)注

3點(diǎn)贊·53人閱讀

前言:

最近在學(xué)習(xí)嵌入式qt開(kāi)發(fā),然后跟著教程編寫(xiě)了一個(gè)簡(jiǎn)單的串口上位機(jī)程序,在編寫(xiě)的時(shí)候還算比較順利,但在調(diào)試的時(shí)候花了點(diǎn)功夫,折騰了一下午。最后還是理清了思路,解決了問(wèn)題,特寫(xiě)此博客進(jìn)行記錄和總結(jié)。

串口上位機(jī)界面設(shè)計(jì):

整個(gè)軟件的界面我都是用ui來(lái)設(shè)計(jì)的,其實(shí)也可以用代碼,但是想了想有好多布局相互嵌套比較麻煩。最后就使用了ui界面來(lái)設(shè)計(jì)。

ui界面設(shè)計(jì)

串口上位機(jī)程序功能設(shè)計(jì):

然后像串口對(duì)象初始化,槽函數(shù),一些邏輯關(guān)系都用代碼來(lái)實(shí)現(xiàn),頭文件就只有一些變量、槽的定義。

頭文件

#include "widget.h"

#include "ui_widget.h"

#include QMessageBox

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui-setupUi(this);

//lcd屏的分辨率是1024X600

this-setFixedSize(QSize(1024, 600));

//new 一個(gè)QSerialPort對(duì)象

serialPort = new QSerialPort(this);

//通過(guò)foreach語(yǔ)句將windows或imx6ull可用串口識(shí)別出來(lái),并添加至對(duì)應(yīng)的下拉選擇框

QStringList serialList;

foreach(const QSerialPortInfo info, QSerialPortInfo::availablePorts()){

serialList += info.portName();

}

ui-comboBox-addItems(serialList);

//設(shè)置串口的信號(hào)與槽

connect(serialPort, SIGNAL(readyRead()), this, SLOT(readData()));

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_radioButton_clicked(bool checked)

{

//點(diǎn)擊“打卡串口”button之后的一些串口配置操作,和一些邏輯關(guān)系

if(checked){

//設(shè)置串口端

serialPort-setPortName(ui-comboBox-currentText());

//設(shè)置波特率

serialPort-setBaudRate(ui-comboBox_2-currentText().toInt());

//設(shè)置停止位

serialPort-setStopBits(QSerialPort::StopBits(ui-comboBox_4-currentText().toInt()));

//設(shè)置數(shù)據(jù)位

serialPort-setDataBits(QSerialPort::DataBits(ui-comboBox_6-currentText().toInt()));

//設(shè)置校驗(yàn)位

switch(ui-comboBox_5-currentIndex()){

case 0:

serialPort-setParity(QSerialPort::Parity::NoParity);

break;

case 1:

serialPort-setParity(QSerialPort::Parity::EvenParity);

break;

case 2:

serialPort-setParity(QSerialPort::Parity::OddParity);

break;

case 3:

serialPort-setParity(QSerialPort::Parity::SpaceParity);

break;

case 4:

serialPort-setParity(QSerialPort::Parity::MarkParity);

break;

default:

break;

}

serialPort-setFlowControl(QSerialPort::NoFlowControl);

if(!serialPort-open(QSerialPort::ReadWrite)){

QMessageBox::about(this, "串口打開(kāi)錯(cuò)誤提示", "可能被占用了");

return;

}

//打開(kāi)串口之后其他的選擇按鈕設(shè)置成不可用

ui-comboBox-setEnabled(false);

ui-comboBox_2-setEnabled(false);

ui-comboBox_4-setEnabled(false);

ui-comboBox_5-setEnabled(false);

ui-comboBox_6-setEnabled(false);

ui-radioButton-setText("關(guān)閉串口");

}

else{

serialPort-close();

ui-comboBox-setEnabled(true);

ui-comboBox_2-setEnabled(true);

ui-comboBox_4-setEnabled(true);

ui-comboBox_5-setEnabled(true);

ui-comboBox_6-setEnabled(true);

ui-radioButton-setText("打開(kāi)串口");

}

}

void Widget::readData()

{

//將串口中的數(shù)據(jù)打印到textBrowser中

ui-textBrowser-insertPlainText(serialPort-readAll());

}

void Widget::on_pushButton_clicked()

{

//點(diǎn)擊“發(fā)送”button之后,將textEdit中的內(nèi)容寫(xiě)入串口

serialPort-write(ui-textEdit-toPlainText().toUtf8());

}

void Widget::on_pushButton_2_clicked()

{

//清屏操作

ui-textEdit-clear();

ui-textBrowser-clear();

}

登錄后復(fù)制

在windows端編寫(xiě)好程序之后,將工程文件發(fā)送到ubuntu進(jìn)行qmake、make最后通過(guò)scp將ARM的可執(zhí)行文件發(fā)送到開(kāi)發(fā)板,接下來(lái)就是驗(yàn)證了

我用的是正點(diǎn)原子出廠的系統(tǒng),所以在驗(yàn)證的時(shí)候需要使用到一個(gè)串口來(lái)連接到開(kāi)發(fā)板執(zhí)行編寫(xiě)好的上位機(jī)程序,所以一個(gè)串口就被占用了,正點(diǎn)原子教程視頻就用開(kāi)發(fā)板的另一個(gè)串口來(lái)進(jìn)行測(cè)試

正點(diǎn)原子教程測(cè)試方式

因?yàn)榉偶倩亓思?,我也沒(méi)有帶太多的東西,usb轉(zhuǎn)ttl模塊放在了學(xué)校。所以我在想怎么就用一個(gè)串口來(lái)完成實(shí)驗(yàn)。困擾我的就是唯一的一個(gè)串口必須留個(gè)上位機(jī),然后要怎么執(zhí)行開(kāi)發(fā)板上的串口上位機(jī)程序?最初我想到了可以使用網(wǎng)絡(luò)通過(guò)Xshell遠(yuǎn)程連接到開(kāi)發(fā)板就可以執(zhí)行,唯一的串口就拿來(lái)驗(yàn)證。

解決完上位機(jī)軟件怎么在imx6ull上執(zhí)行的問(wèn)題,接下來(lái)就是驗(yàn)證了。驗(yàn)證的時(shí)候又出現(xiàn)了一些問(wèn)題,上位機(jī)軟件不像想象的那樣一邊發(fā)數(shù)據(jù),一邊就接收對(duì)應(yīng)的數(shù)據(jù),而出現(xiàn)了一些imx6ull的信息,好像還可以輸入命令,感到非常奇怪。

我以為我的軟件有問(wèn)題,就在windows上換了一個(gè)串口軟件,結(jié)果還是出現(xiàn)了類(lèi)似的情況

最后也是在不斷猜想和測(cè)試之后找到了原因,就是應(yīng)因?yàn)槲以诮o開(kāi)發(fā)板上電的時(shí)候接入了串口線(xiàn),然后先打開(kāi)了windows上的串口,然后就使用到了串口,導(dǎo)致就相當(dāng)于有一個(gè)串口控制imx6ull開(kāi)發(fā)板,像Xshell中通過(guò)串口連接開(kāi)發(fā)板一樣。然后我嘗試在windows的上位機(jī)軟件輸入命令想打開(kāi)一個(gè)qt程序,最后也是成功打開(kāi)證實(shí)了猜想

執(zhí)行./list命令打開(kāi)了蛇姐list程序(qt程序的路徑是/home/root/qt_project/list)

如果想要實(shí)現(xiàn)實(shí)驗(yàn)最初windows和imx6ull兩個(gè)上位機(jī)互換數(shù)據(jù)的效果的話(huà)。要先通過(guò)windows中的上位機(jī)軟件輸入命令來(lái)打開(kāi)imx6ull的上位機(jī)軟件,這樣相當(dāng)于windows中的上位機(jī)連接的就是imx6ull的上位機(jī)了,而不是直接控制imx6ull了,之后就可以正常收發(fā)數(shù)據(jù)了。

總結(jié):

學(xué)了qt快半個(gè)月了,這個(gè)串口上位機(jī)算是一個(gè)比較綜合的練習(xí)了,結(jié)合了ui和代碼設(shè)計(jì)。加上最后的調(diào)試也是收獲頗多,如果有usb-ttl模塊的話(huà)驗(yàn)證步驟就會(huì)更簡(jiǎn)單。

qt stm32上位機(jī)串口通信

1、首先,新建一個(gè)Qt項(xiàng)目:文件--新建文件。

2、然后,點(diǎn)擊--?choose。

3、再然后,全部下一步到完成。

4、成功建立一個(gè)Qt:Widgets Application。

5、然后,新建一個(gè)管理SerialPort的類(lèi):右擊項(xiàng)目名字--添加新文件--彈出。

6、選擇C++ Class。點(diǎn)擊:choose--彈出如下框: 并填寫(xiě)--點(diǎn)擊下一步---點(diǎn)擊完成。

怎么學(xué)Qt,我的終極目標(biāo)是用Qt編寫(xiě)一個(gè)上位機(jī)界面就行了,有沒(méi)有高手指點(diǎn)下,怎么學(xué),用什么書(shū)容易上手?

C++ GUI Qt 4 編程

Linux窗口程序設(shè)計(jì)

隨便一本書(shū)或教材你能看懂看完就行了,多編譯玩玩

關(guān)于上位機(jī)軟件開(kāi)發(fā)教程qt和上位機(jī)開(kāi)發(fā)用什么軟件的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃碼二維碼