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