嵌入式学习之QT学习---5 QT上位机开发之串口助手(上)
生活随笔
收集整理的這篇文章主要介紹了
嵌入式学习之QT学习---5 QT上位机开发之串口助手(上)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、qt的三駕馬車
- qt下的串口編程
- qt下的網絡編程
- qt下操作GPIO
2、設計ui界面
設計ui界面之前,需要新建一個QT工程,簡要再回顧一下創建QT工程的步驟:new project—》application—》Qt widgets application—》寫入名字,選擇路徑—》基類選擇“QWidget”。
創建好QT工程之后,先編譯一下,看會不會報錯,不然萬一有錯誤,等到最后全部搞完的時候再去編譯,如果有報錯,都很難排錯。上次我就是基類選錯了,最后編譯的時候報錯,明明每一個環節都沒錯,直到第二天才想起來一開始的時候我就把基類選錯了,哭遼.
(1)首先打開ui文件,根據下圖的標準串口助手的界面去選擇要使用的控件,我們從標準串口界面可以看到,想要設計一個串口助手,需要包含“接收端”、“發送端”、“串口號”、可選擇的波特率等。
- 接收框:接收其它設備發來的數據,這里選擇的控件是“Input Widgets----》Plain Text Edit”
- 發送框:“Input Widgets----》Line Edit”
- 可選擇的波特率:“Input Widgets----》Combo Box”
(2)界面布局以及禁止接收框寫入數據
放好控件之后,進行編譯和運行。編譯運行之后,結果如下圖所示,但是我們發現,在發送框可以寫入數據,同時在接收框也可以寫入數據。在接收框可以輸入數據這個就有問題啦,因為接收框是不能操作的。一般的串口工具在接收框輸入數據的時候就會報錯!
修正一下,將接收框的屬性改為只讀的就可以啦。
選中“接收框–勾選QPlainTextEdit(readonly)”即可。操作完成之后,重新編譯運行,發現現在的接收框就不可以被寫入數據啦。
ui界面的設計大致就是現在的樣子啦,下一步,給ui界面布局(小紅色方框里的控件先水平布局,再垂直布局;黑色方框-水平布局;黑色與發送框、廣告框垂直布局;垂直布局后的小紅色方框與垂直布局后的發送框、廣告、按鈕水平布局;整個ui界面柵格布局。),并且設置最小寬度(將自制串口助手所在的控件的最小尺寸設置成了150x50)。編譯運行結果如下,ui界面就基本完成啦。
(3)接下來,給控件編輯它應該實現的功能,步驟如下:
利用該方法分別給控件編輯選項,波特率(4800,9600,115200)、數據位(5,6,7,8)、停止位(1,1、5,2)、校驗位(none),編譯運行一下查看效果:
效果可以的,但是出現了一個小問題,這里的布局有點亂啦,重新布一下局,回到ui文件,打破布局,將串口號以及其屬性選擇框等一系列相關的框給它們進行柵格布局。(紅色框內的進行柵格布局,接著將黃色框內的給它水平布局)
這次布局之后就很整齊美觀啦。
(4)設置可選擇參數的默認值
在標準的串口助手里面,有一些默認的值,比如:定時發送、HEX顯示以及HEX發送,以及一打開串口助手就會在波特率等地方也顯示常用的參數,這個我們應該如何實現嘞?
比如波特率的常用參數為115200,選中波特率的屬性選擇控件,在屬性編輯器里面找到currentIndex,可以看到第0位對應的是4800,所以相應的115200在剛才的項目里面排位為2(剛才項目里從0-2對應的是4800,9600,115200),故將此處的參數改為2試一下。編譯運行結果中會自動在波特率一欄中選擇115200.
同樣的方法,將數據位默認值設置為8,停止位默認值設置為1,校驗位設置為none。
(5)還需要寫入串口號,串口號需要通過代碼來實現。
在寫代碼之前,需要給控件修改名字,避免在編寫.cpp文件代碼的時候對應到ui界面出現混亂,分不清楚哪個控件對應什么功能。
qt串口這里需要用到一個很關鍵的類serialport,要現在.pro工程文件里面添加該模塊(在QT += core gui 代碼后面加上該模塊)
QT += core gui serialport添加完之后編譯一下,看看有沒有錯誤,沒有錯誤的話再繼續進行。
接下來,使用代碼將串口號給加進去。打開“widget.cpp文件”,對文件進行編寫和修改。
把購買開發板的時候送的U轉串的線插到電腦上,然后編譯運行該工程,就看到有自動匹配的COM3串口號了。
總結
以上是生活随笔為你收集整理的嵌入式学习之QT学习---5 QT上位机开发之串口助手(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么选择转行学网安?老男孩培训改变了我
- 下一篇: 老男孩培训python学费