VOFA+32位/64位中文免安裝版是很好用的一款串口調(diào)試工具,可以顯示串口數(shù)據(jù)波形,支持自定義控件等,在調(diào)試無感的無刷直流電機(jī)的應(yīng)用中。使用“六步換向法”時(shí),需要高速采集3路驅(qū)動(dòng)電壓,用于檢測反電動(dòng)勢(shì)的“過零點(diǎn)”。
軟件說明
串口軟件Vofa+,超好用?捎糜诟咚俨杉瘮(shù)據(jù)直觀化顯示動(dòng)態(tài)
Vofa支持3種數(shù)據(jù)流方式:分別為:RawData、firewater、justfloat。
RawData:協(xié)議適用于不需要解析數(shù)據(jù),僅僅查看字節(jié)流的需求。【可以直接當(dāng)串口助手使用】
firewater:本協(xié)議是CSV風(fēng)格的字符串流,直觀簡潔,編程像printf簡單。但由于字符串解析消耗更多的運(yùn)算資源(無論在上位機(jī)還是下位機(jī)),建議僅在通道數(shù)量不多、發(fā)送頻率不高的時(shí)候使用。
justfloat:本協(xié)議是小端浮點(diǎn)數(shù)組形式的字節(jié)流協(xié)議,純十六進(jìn)制浮點(diǎn)傳輸,節(jié)省帶寬。此協(xié)議非常適合用在通道數(shù)量多、發(fā)送頻率高的時(shí)候。
使用情況
我使用以上說的第三種數(shù)據(jù)格式:justfloat。我的數(shù)據(jù)格式為:float Chan1,float Chan2,float Chan3,uint32_t End。這樣把我的3個(gè)8Bit數(shù)據(jù),通過4個(gè)32Bit數(shù)據(jù)傳輸?shù)絇C上位機(jī)。
軟件代碼編寫:通過如下把代碼實(shí)現(xiàn)傳輸
uint8_t AdcGetVal[3]; //為定義的3個(gè)電壓采集值
float tempFloat[3]; //定義的臨時(shí)變量
uint8_t tempData[16]; //定義的傳輸Buffer
tempFloat[0] = (float)AdcGetVal[0]; //轉(zhuǎn)成浮點(diǎn)數(shù)
tempFloat[1] = (float)AdcGetVal[1];
tempFloat[2] = (float)AdcGetVal[2];
memcpy(tempData, (uint8_t *)tempFloat, sizeof(tempFloat));//通過拷貝把數(shù)據(jù)重新整理
tempData[12] = 0x00; //寫如結(jié)尾數(shù)據(jù)
tempData[13] = 0x00;
tempData[14] = 0x80;
tempData[15] = 0x7f;
HAL_UART_Transmit_IT(&huart6, (uint8_t *)tempData, 16); //通過串口傳輸16個(gè)數(shù)據(jù)
而由于把8Bit加載在32Bit數(shù)據(jù)進(jìn)行傳輸,導(dǎo)致數(shù)據(jù)量變大4倍。所以我設(shè)計(jì)的16.7uS采集發(fā)送一次帶寬不夠。
最終調(diào)試串口為:3Mbps,每60uS發(fā)送一次數(shù)據(jù)。
軟件特色
平臺(tái)支持:Windows;
接口支持:串口(超高波特率,穩(wěn)定支持)、網(wǎng)口(TCP客戶端/服務(wù)端,UDP);
協(xié)議支持:協(xié)議為插件,已開源,人人可編寫。目前已支持CSV風(fēng)格的字符串協(xié)議,和十六進(jìn)制浮點(diǎn)數(shù)組形式的字節(jié)流協(xié)議;
控件支持:控件為插件,已開源,人人可編寫。目前已支持波形圖、按鈕、狀態(tài)燈、圖片、滑動(dòng)條、3D立方控件(可更換模型)等;
2維度與3維,一個(gè)也不能拉下;
自主研發(fā)的波形控件,支持每通道百萬采樣點(diǎn)的繪制,性能強(qiáng)勁;
自主研發(fā)的波形控件,無縫嵌入了實(shí)時(shí)直方統(tǒng)計(jì)和點(diǎn)數(shù)可設(shè)置的傅里葉變換,可以使用VOFA+進(jìn)行數(shù)據(jù)分析。
傳統(tǒng)字節(jié)流收發(fā)調(diào)試功能依然支持;
拖拽方式添加控件,交互流暢自然;
快捷的命令、參數(shù)綁定系統(tǒng),發(fā)送指令同樣優(yōu)雅。