大家好,我是小麥,趁著今天休假,給大家推薦一個開源的串口虛擬示波器專案,可以實時顯示串口傳輸的資料,非常直觀,當然也可以做二次開發,非常的靈活,
基本功能
專案地址: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;
/* USER CODE END WHILE */
printf("$%d %d %d;",data_1,data_2,data_3);
//printf("hello\n");
/* USER CODE BEGIN 3 */
}
最終結果如下,基本符合要求;

進行二次開發
該專案是在QtCreator環境下開發的,需要在PC上搭建Qt的開發環境,安裝QtCreator之后,打開專案目錄下的.pro的工程檔案即可,然后就可以隨意添加自己需要加入的功能,原始碼目錄如下圖所示;

下面是我以前專案中加入的一些控制指令,還有讀寫Flash的操作,具體如下所示;

一個超贊的開源串口虛擬示波器專案
—— The End ——
推薦好文 點擊藍色字體即可跳轉
? 寫了這么多年代碼,開源協議你確定自己真的知道嗎?
? 這個專案差點就爛尾了... 
? 被坑10萬!競業協議到底有多少坑?
? 前幾天哪位老哥讓我推薦C語言書籍來著?
? 那些年我寫過的文章
原創不易,歡迎轉發、留言、點贊、分享給你的朋友,感謝您的支持!

長按識別二維碼關注我

你點的每個好看,我都認真當成了喜歡
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282369.html
標籤:其他
