開源QT寫的串列埠除錯上位機(帶波形顯示)
為了方便PC機同微控制器(下位機)進行通訊,需要開發一款基於串列埠協議的上位機輔助除錯軟體。軟體不僅能夠向下位機發送資料,傳送指令進而控制下位機,而且還應該能準確接收下位機發來的資料,便於對下位機的一些感測器採集的訊號進行分析。
首先,在考慮到微控制器跟PC機通訊的問題時,一般的解決方案是通過一根串列埠線,通過UART協議實現上位機和微控制器的通訊,但是這樣只能進行一些資料的接收.比如在進行AD採集時,陀螺儀和加速度感測器的採集回來的訊號不能很好的用上位機軟體進行顯示,必須先把資料儲存到硬碟,再通過matlab實現資料的縮放,波形的顯示分析。這樣處理起來比較浪費時間。
其次,在完成前面一系列的硬體電路搭建,驅動編寫,除錯,以及後面的軟體演算法初步整定後,又遇到了新的問題。由於我們所在的組別需要實現兩輪直立行走的可循跡的智慧車,中間涉及到的引數比較多,除錯起來很困難,最開始比較笨,也是比較常規的方法是每改動一遍程式,就重新燒錄一次程式,這個過程相對起來時比較慢的。最後想到利用微控制器的串列埠中斷實現對智慧車行進過程中的引數動態整定。
最後,通過無線串列埠實現上位機和微控制器的通訊。由於自己比較熟悉QT,於是就用QT開發了SerialPort這款串列埠除錯工具。
(1)開發工具介紹
Qt Creator 是 Qt 被 Nokia 收購後推出的一款新的輕量級整合開發環境(IDE)。此 IDE 能夠跨平臺執行,支援的系統包括 Linux(32位及64 位)、MacOS X 以及 Windows。根據官方描述,QtCreator 的設計目標是使開發人員能夠利用 Qt 這個應用程式框架更加快速及輕易的完成開發任務。
在功能方面,Qt Creator 包括專案生成嚮導、高階的 C++ 程式碼編輯器、瀏覽檔案及類的工具、集成了Qt Designer、圖形化的 GDB 除錯前端,整合qmake 構建工具等。
(2)實現功能
1).可以實時接收顯示資料,同時也可以向單片機發送資料;2).可以讀取檔案中資料,不斷髮送給下位機;
3).可以實時的顯示波形;並通過一些軟體演算法對採集的訊號進行濾波;
4).可以對智慧車所涉及的直立控制模組,速度控制模組,方向控制模組中的7個引數進行線上除錯;當然,如需更多的引數,下位機程式需進行相應的修改。
(3)軟體主介面,如下圖:
(4).軟體波形顯示介面
(5).QT編寫程式時的相關程式碼截圖:
(6).自動定時傳送資料給下位機:
(7)載入資料檔案進行顯示,並可以通過相應的濾波演算法對資料進行處理:
github連結:https://github.com/zhouguangfu09/SerialPortQT.git