大家好,今天給大家推薦一個開源的串口虛擬示波器項目,可以實時顯示串口傳輸的數據,非常直觀,當然也可以做二次開發,非常的靈活。
基本功能
雙擊放大
項目地址:https://github.com/CieNTi/serial_port_plotter
這是一個Windows應用程序,可顯示來自串行端口的實時數據,使用Qt和QCustomPlot庫構建。
具體有哪些功能:
范圍無限制:新的通道數據會創建一個新圖形并使用它;
無數據點限制:保留所有接收到的數據,以便用戶可以瀏覽舊數據;
無波特率限制:經過測試高達912600 bps;
使用鼠標進行縮放和拖動(滾輪或單擊,僅限于X軸);
在圖上移動會在狀態欄中顯示圖形的X和Y值;
頻道名稱圖例(雙擊進行修改);
頻道選擇(點擊圖例文字);
支持正負整數和浮點數;
可以輸出圖像保存為PNG;
可以到處數據為CSV;
自動縮放到可見圖;
使用比較簡單,在軟件布局中大致有三個地方經常使用:
串口的基本配置(配置串口通訊的參數);
串口數據圖形顯示區(用于顯示波形);
串口數據顯示區域(串口的數據基本都會顯示出來);
如何使用程序?
只需通過串行端口發送整數數據即可。
該應用程序期望使用某種格式,以便可以區分值。
發送的數據都必須以$開頭,并以;結尾 (分號)和內部的整數需要用空格分隔。
如何顯示波形?
這個軟件上傳數據非常簡單,每一幀數據保持格式如下:
printf("$%d%d;",data1,data2);
根據要顯示的數據量,可以調整數據點的數量。
例如,如果每10毫秒(100 Hz)從mbed的串行端口發送一次數據,并且繪圖儀設置為顯示500點,它將包含5秒鐘數據的信息。
支持整數和浮點數(單精度和雙精度)。
測試
簡單測試一下這個軟件,需要向PC發送數據,具體按照幀格式printf("$%d %d;",data1,data2)即可;
本文基于STM32F767-Nucleo-144的開發板,通過STM32CubeIDE進行開發,連續從單片機往PC發送三個數據;
while(1)
{ data_1++; data_2++; angle+=0.01; data_sin=sin(angle); data_3=data_sin*128+128; /*USERCODEENDWHILE*/ printf("$%d%d%d;",data_1,data_2,data_3); //printf("hello "); /*USERCODEBEGIN3*/ }
最終結果如下,基本符合要求;
雙擊放大
進行二次開發
該項目是在QtCreator環境下開發的,需要在PC上搭建Qt的開發環境,安裝QtCreator之后,打開項目目錄下的.pro的工程文件即可,然后就可以隨意添加自己需要加入的功能,源碼目錄如下圖所示;
源碼目錄結構
下面是我以前項目中加入的一些控制指令,還有讀寫Flash的操作,具體如下所示;
二次開發后的項目
編輯:jq
-
PC
+關注
關注
9文章
2065瀏覽量
154021 -
開源
+關注
關注
3文章
3248瀏覽量
42402 -
開發板
+關注
關注
25文章
4943瀏覽量
97193 -
串行端口
+關注
關注
0文章
31瀏覽量
11650
原文標題:一個超贊的開源串口虛擬示波器項目,玩起來!
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論