介绍
VOFA+是一个精致的数据可视化上位机软件,支持多个数据接口(串口、网口)、自定义数据引擎和定制数据可视化控件,是一个不可多得的自动化调参
软件(示波器类似物),个人觉得它将串口调参的功能发挥到了极致
前端
数据引擎和数据接口参数配置:选择FireWater
引擎,数据接口选串口
,串口配置115200 8N1

通道数据展示:通道开关+名称+颜色+小数点位置

可以控制缓冲区里边可视化数据点数:点击红色原点进行波形放大、缩小

文本展示区,可以实时展示接收+发送内容

控件
可以点击左侧的控件栏,左键选中控件并拖到波形展示区域

主窗口支持多个Tab分页,可以将不同的数据分类展示,支持分类的重命名

绑定
数据通道绑定X轴已经Y轴,只要在控件右键弹出菜单就可以配置X轴、Y轴,其它控件同理

指定上位机的时间戳为X轴,当然你可以用数据通道指定的X轴(不用上位机的时间戳)

以FireWater数据引擎+串口数据接口
为例:使用指定格式输出数据:”%f,%f,%f,%f\n”,只要往printf输出格式化数据就行,以下嵌入式代码用于生成自定义的正弦波数据,printf的参数配置需要和上位机的串口配置一致
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| printf("Angle,Sin(x),Cos(x),Sin(x)*Cos(x),Cos(x)*Cos(x)\r\n");
float angle = 0.0f; float angleRad; float sinVal, cosVal; float sinCosVal, cosSquareVal;
for(;;) { while(angle <= 360.0f) { angleRad = angle * 0.01745329f;
sinVal = sin(angleRad); cosVal = cos(angleRad); sinCosVal = sinVal * cosVal; cosSquareVal = cosVal * cosVal;
printf("%f,%f,%f,%f\r\n", sinVal, cosVal, sinCosVal, cosSquareVal);
angle += 15.0f;
DEVICE_DELAY_US(500); } angle = 0; }
|
DSP实现printf
函数功能,使用前先初始化SCIA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| void initSCI(void) { GPIO_setPinConfig(GPIO_28_SCIRXDA); GPIO_setPinConfig(GPIO_29_SCITXDA); GPIO_setPadConfig(28, GPIO_PIN_TYPE_STD); GPIO_setPadConfig(29, GPIO_PIN_TYPE_STD);
SCI_disableModule(SCIA_BASE); SCI_performSoftwareReset(SCIA_BASE);
SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE));
SCI_disableLoopback(SCIA_BASE); SCI_disableFIFO(SCIA_BASE); SCI_enableModule(SCIA_BASE); }
#include <stdio.h> #include "driverlib/sci.h"
int fputc(int c, register FILE *stream) { SCI_writeCharBlockingNonFIFO(SCIA_BASE, (uint16_t)c); while(SCI_getTxFIFOStatus(SCIA_BASE) != SCI_FIFO_TX0); return c; }
|
波形实时展示效果

总结
- 理论上也能支持CAN接口,要是支持CAN就完美了
- 推荐使用SCI发送中断的方式进行串口数据发送