最近尝试使用VS code搭载platformio进行单片机开发,在实际操作过程中,发现使用cmsis-dap无法正常下载、调试程序,错误信息:Using CMSIS-DAPv2 interface 1 with wrong class 10 subclass 0 or protocol 0,经过网上查找资料发现原因为,下载时OpenOCD默认使用的是CMSIS-DAP V2的接口,官方文档中表示 OpenOCD 从 0.11.0 开始支持 CMSIS-DAPV2, 如果没有显式指定 CMSIS-DAP 版本的话会优先尝试 V2 接口,如果失败再尝试 V1 接口。但是从实际使用中发现, OpenOCD 尝试 CMSIS-DAPV2 接口失败之后就直接退出了,并没有尝试 CMSIS-DAPV1。所以我们需要显式指定使用 CMSIS-DAPV1 的接口,在 cmsis-dap.cfg 文件中增加 cmsis_dap_backend hid指令,重新下载调试即可成功。