VOFA+32位/64位中文免安装版是很好用的一款串口调试工具,可以显示串口数据波形,支持自定义控件等,在调试无感的无刷直流电机的应用中。使用“六步换向法”时,需要高速采集3路驱动电压,用于检测反电动势的“过零点”。
软件说明
串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态
Vofa支持3种数据流方式:分别为:RawData、firewater、justfloat。
RawData:协议适用于不需要解析数据,仅仅查看字节流的需求。【可以直接当串口助手使用】
firewater:本协议是CSV风格的字符串流,直观简洁,编程像printf简单。但由于字符串解析消耗更多的运算资源(无论在上位机还是下位机),建议仅在通道数量不多、发送频率不高的时候使用。
justfloat:本协议是小端浮点数组形式的字节流协议,纯十六进制浮点传输,节省带宽。此协议非常适合用在通道数量多、发送频率高的时候。
使用情况
我使用以上说的第三种数据格式:justfloat。我的数据格式为:float Chan1,float Chan2,float Chan3,uint32_t End。这样把我的3个8Bit数据,通过4个32Bit数据传输到PC上位机。
软件代码编写:通过如下把代码实现传输
uint8_t AdcGetVal[3]; //为定义的3个电压采集值
float tempFloat[3]; //定义的临时变量
uint8_t tempData[16]; //定义的传输Buffer
tempFloat[0] = (float)AdcGetVal[0]; //转成浮点数
tempFloat[1] = (float)AdcGetVal[1];
tempFloat[2] = (float)AdcGetVal[2];
memcpy(tempData, (uint8_t *)tempFloat, sizeof(tempFloat));//通过拷贝把数据重新整理
tempData[12] = 0x00; //写如结尾数据
tempData[13] = 0x00;
tempData[14] = 0x80;
tempData[15] = 0x7f;
HAL_UART_Transmit_IT(&huart6, (uint8_t *)tempData, 16); //通过串口传输16个数据
而由于把8Bit加载在32Bit数据进行传输,导致数据量变大4倍。所以我设计的16.7uS采集发送一次带宽不够。
最终调试串口为:3Mbps,每60uS发送一次数据。
软件特色
平台支持:Windows;
接口支持:串口(超高波特率,稳定支持)、网口(TCP客户端/服务端,UDP);
协议支持:协议为插件,已开源,人人可编写。目前已支持CSV风格的字符串协议,和十六进制浮点数组形式的字节流协议;
控件支持:控件为插件,已开源,人人可编写。目前已支持波形图、按钮、状态灯、图片、滑动条、3D立方控件(可更换模型)等;
2维度与3维,一个也不能拉下;
自主研发的波形控件,支持每通道百万采样点的绘制,性能强劲;
自主研发的波形控件,无缝嵌入了实时直方统计和点数可设置的傅里叶变换,可以使用VOFA+进行数据分析。
传统字节流收发调试功能依然支持;
拖拽方式添加控件,交互流畅自然;
快捷的命令、参数绑定系统,发送指令同样优雅。