Skip to content

VOFA+

MicroKeen(MKLink)已完成对 VOFA+ 上位机协议的原生适配,可在功能与使用体验上完美替代 J-Link 的 J-Scope。无需额外的 USB 转串口模块或专用数据采集硬件,即可实现高速、稳定、实时的数据可视化调试。MKLink 通过 SWD 直接读取目标芯片内存中的变量数据,并将其实时封装为 VOFA+ 协议,经 USB CDC 虚拟串口发送至 PC,实现对运行中变量的曲线显示、波形分析与参数调试,且不占用 MCU 串口资源、不侵入业务代码。

核心优势

  • 无需占用 MCU 串口资源 不依赖 USART ,不影响产品原有通信接口设计;
  • 基于 SWD 的非侵入式采集 不修改业务代码逻辑,对实时性影响极小;
  • 高速刷新,稳定可靠 适配 MKLink 高速 SWD 通道,最高支持1M的读取速率;
  • 即插即用 直接使用官方 VOFA+ 上位机,无需定制软件。

使用方式1(需要升级到最新固件版本)

  1. 使用 MKLink 连接目标板并正常下载程序;
  2. 启动 VOFA+ 上位机,选择MKLink 提供的虚拟串口,发送启动命令。
  3. 最多一次支持读取16个float类型的变量
vofa.send(0x20000030,5,0.00001)
  • 0x20000030:变量1内存地址;
  • 5:读取五个数据,只支持float类型;
  • 0.00001:读取周期,单位秒,最小支持1us,设置0,停止读取

使用方式2

  1. 使用 MKLink 连接目标板并正常下载程序;
  2. 启动 VOFA+ 上位机,选择MKLink 提供的虚拟串口,发送启动命令。
  3. 最多一次支持读取16个常用数据类型的变量
字符串关键字(输入) C语言对应类型 字节数 说明
char / int8 / int8_t int8_t 1 有符号8位
uchar / uint8 / uint8_t uint8_t 1 无符号8位
short / int16 / int16_t int16_t 2 有符号16位
ushort / uint16 / uint16_t uint16_t 2 无符号16位
int / int32 / int32_t int32_t 4 有符号32位
uint / uint32 / uint32_t uint32_t 4 无符号32位
float / fp32 float 4 单精度浮点
bool / boolean bool 1 布尔类型

特别注意:非4字节变量必须强制4字节对齐,要不然会出现数据撕裂

__attribute__((aligned(4))) static volatile uint16_t conut2 = 0;

vofa.send(0x20000030,"uint8_t",0x2000154c,"uint16_t",0x20001550,"float",0.00001)
  • 0x20000030:变量1内存地址;
  • uint8_t:变量1数据类型;
  • 0.00001:读取周期,单位秒,最小支持1us,设置0,停止读取

相关的变量地址可以通过查看MDK编译生成的.map文件来查找,如下:

RTT_MAP

📌 示例画面: