1. 程式人生 > >玩轉X-CTR100 | X-PrintfScope波形顯示

玩轉X-CTR100 | X-PrintfScope波形顯示

borde 標準 使用說明 資訊 延遲 格式 value body 保存數據

技術分享圖片

更多塔克創新資訊歡迎登陸【塔克社區 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/

X-CTR100控制器配套的X-PrintfScope串口波形顯示功能的使用,如其名,軟件最大亮點是可以通過C語言Printf函數實現波形顯示功能,使用簡單靈活。另外也支持常規的串口通信協議,實現高效率傳輸。

技術分享圖片

原理介紹

X-CTR100控制器配套X-PrintfScope串口波形顯示軟件,具有八個顯示通道,最大特點是可通過C標準庫函數printf增加@標識實現數據波形顯示,例如printf("@%d %f ",a,b)可實現一個整形一個浮點類型數據波形顯示,使用方便靈活。Printf協議使用字符編碼方式,雖然使用方便靈活,但傳輸效率相對較低,本軟件也支持高效的Data協議傳輸方式。

X-PrintfScope基於功能強大的Iocomp控件設計,軟件界面及功能介紹如下圖所示,詳細使用請參考軟件幫助或軟件使用說明文檔,本教程對軟件基本操作進行說明。

技術分享圖片

串口設置

- 軟件啟動後,會自動搜索可用的串口,並在端口號下拉框處顯示可用串口。如果有可用串口單擊"OPEN"按鈕即可打開對應串口,並且顯示串口狀態和參數信息(S:COM3_ON 115200 N 8 1),串口參數為默認參數(波特率:115200,校驗位:NONE,數據位:8,停止位1)。

- 多個可用串口時,端口號下拉框可選擇和切換不同串口。

- 波特率下拉框可以選擇不同波特率。

- SET按鈕可以打開不常用的‘校驗位‘‘數據位‘‘停止位‘串口參數設置對話框。

- 進入串口參數設置對話框可進行參數設置,完成後單擊參數更新即可完成參數設置。考慮到常用情況,參數設置不具有記憶性,每次進入均顯示常用的默認參數值。

- 不支持串口熱插拔,熱插拔會報錯誤,建議關閉串口後再進行串口插拔。

波形顯示

- 具有八個波形顯示通道,使用不同顏色表示

- 波形可以拖動、放大、縮小操作

- 示波器上方具有幀數和幀率顯示

- 建議最大發送幀率為120,幀率與電腦顯示性能有關,幀率過大容易導致波形顯示延遲

- CLEAR按鈕實現波形和數據清除

- VIEW按鈕實現數據顯示(待實現)

- SAVE按鈕實現數據保存為txt格式文件,文件名默認為"xx月xx日xx時xx分xx秒_.txt",其中xx為當前時間,"_"後可增加內容字符描述。

- LOAD按鈕可實現保存數據的波形顯示(待實現)

- Axes欄X、Y滑動條可進行X軸和Y軸數據縮放操作

通道操作

- Channel欄SET按鈕可實現波形通道相關操作,單擊可進入通道設置對話框

- 通道設置對話框 Name欄可定義波形通道名稱

- View復選框可控制該通道波形是否顯示

- Scale欄為輸出與輸入的比例系數

- Shift欄為輸出與輸入的唯一系數

- Scale和Shift可以方便進行波形顯示範圍的控制,方便進行不同數量級波形同屏顯示

Printf通信協議

- Printf協議:通過C語言Printf函數增加@標識實現數據波形顯示。

- 顯示示例函數:printf("@%d %d %f %f \r\n", a, b, x, y);,實際發送數據 @876 142 12.35 48.357

- @為幀頭標識符,回車換行\r\n為幀尾標識符。

- @幀頭後面緊跟數據。

- 每個數據後面加一個空格,作為數據標識符。

- 支持整型%d和浮點%f兩種數據類型。

- 數據數量為1~8,幾個數據對應幾個顯示通道

Data通信協議

- Data協議為高效率的數據編碼協議,傳輸效率比Printf協議高。

- 協議內容:0xAA + 0x55 + 數據個數 + 預留位 + 數據1低8位 + 數據1高8位 + …… + 校驗和。

- 數據個數:根據需要可以選擇1~8,對應數據1~數據8。

- 預留位:0x00

- 數據內容:數據位為16進制整型數據,低8位在前,高8位在後。數據數量與前面數據個數位對應。

- 校驗和:前面數據累加和的低8位。

- 範例:幀數據‘aa 55 03 00 43 fe 2a ff 74 ff df‘

發送功能

- 為方便系統調試,設計了數據發送功能,可實現下位機命令交互功能。

- 可以在Send區,發送您發送的任意字符。

- 支持16進制發送,勾選‘Hex‘復選框後,發送的時候將對發送區的內容進行16進制和字符互轉。

- Num為發送的字節數。

例程-Printf協議例程

使用MPU6050作為數據源,使用C語言Printf函數實現對MPU6050傳感器3軸加速度、3軸陀螺儀、溫度數據7個數據源進行波形顯示,其中加速度陀螺儀為整型數據,溫度為浮點數據。

硬件說明

硬件資源:

  • 串口UART1
  • LED燈
  • MPU6050運動傳感器

軟件說明

通過MPU6050相關X-API接口進行數據采集,並將采集的數據通過printf函數輸出,主程序代碼如下。

int main(void)

{

float tmp;

int16_t acel[3];

int16_t gyro[3];

//XRT1初始化

AX_Init(115200);

//模塊初始化及配置

AX_MPU6050_Init(); //MPU6050初始化

AX_MPU6050_SetAccRange(AX_ACC_RANGE_2G); //設置加速度量程

AX_MPU6050_SetGyroRange(AX_GYRO_RANGE_250); //設置陀螺儀量程

AX_MPU6050_SetGyroSmplRate(200); //設置陀螺儀采樣率

AX_MPU6050_SetDLPF(AX_DLPF_ACC94_GYRO98); //設置低通濾波器帶寬

while (1)

{

AX_MPU6050_GetAccData(acel); //讀取三軸加速度數據

AX_MPU6050_GetGyroData(gyro); //讀取三軸陀螺儀數據

tmp = AX_MPU6050_GetTempValue(); //讀取溫度傳感器數據

printf("@%d %d %d %d %d %d %f \r\n",acel[0],acel[1],acel[2],gyro[0],gyro[1],gyro[2],tmp);

AX_Delayms(7);

AX_LEDG_Toggle();

}

}

實現效果

波形顯示效果如下圖所示,軟件會自動對數據進行跟蹤顯示,本例程幀率可以達到90,方便觀察數據可以拖動窗口到全屏顯示。

技術分享圖片

使用串口助手查看數據內容,如下圖所示。

技術分享圖片

玩轉X-CTR100 | X-PrintfScope波形顯示