大家好,今天給大家推薦一個開源的串口虛擬示波器項目,可以實時顯示串口傳輸的數據,非常直觀,當然也可以做二次開發,非常的靈活。
基本功能

雙擊放大
項目地址: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文章
2167瀏覽量
159324 -
開源
+關注
關注
3文章
4207瀏覽量
46134 -
開發板
+關注
關注
26文章
6291瀏覽量
118101 -
串行端口
+關注
關注
0文章
36瀏覽量
12079
原文標題:一個超贊的開源串口虛擬示波器項目,玩起來!
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
一個小項目看懂 STM32 全部外設
開源鴻蒙項目順利孵化畢業
開源鴻蒙項目達成開源孵化目標順利畢業
開放原子開源基金會與11個項目完成捐贈簽約
開源鴻蒙和開源歐拉成為開放原子開源基金會首批畢業項目
rtstudio是否可像keil加載ini解決虛擬串口與mcu串口通訊?
開放原子開源基金會發布150余個開源項目應用案例
開放原子開源基金會與新一批開源項目完成捐贈簽約
ThunderScope:開源的、優雅的、便攜的專業級示波器
RISC V 開源芯片項目:OpenTitan 詳細解讀
開源項目!Open Echo:一個開源的聲納項目
Open Echo:一個開源的聲納項目
解讀一個超贊的開源串口虛擬示波器項目
評論