一、问题

在进行嵌入式软件开发时,我们经常会使用串口助手工具来调试打印消息,毕竟不是所有场合下都能使用J-Link或者ST-Link仿真器。市面上的调试助手很多,如串口调试助手(UartAssist) 串口通信调试工具(ComTools)丁丁串口调试助手(SSCOM)XCOMSecureCRTQCOM有人串口助手猫猫串口网络调试助手(amaoCom)友善串口调试助手单片机多功能调试助手myUARTxaccessportMobaXtermHTermComMonitor等等,但我认为判断一个串口助手是否好用,高效需要有以下功能:

  1. COM口可自定义属性(指显示内容),如:COM6: STM32F103,COM8:LoRa
  2. 硬件断开后可以锁定COM口,即重新连接后可继续首发数据,不需要人为再设置
  3. 每个CMO口的配置可以保存,即手动更换COM口后,之前的设置(如波特率等)自动匹配
  4. 可以保存日志到文件
  5. 可以设置并保存多条命令
  6. 可现实发送和接收数据的时间等状态信息
  7. 多开,不相互影响,稳定
  8. 有发送指令的历史记录
  9. 批量发送数据
  10. 可置顶 ,支持新系统(如Windows10)
  11. 小巧,随用随开,不用安装

但市面上大部分的工具几乎都不具有以上所有的功能,相对较好的有:串口调试助手(V5.0.2,部分功能收费)丁丁串口调试助手(V5.13.1,无法锁COM口)MobaXterm Pro(V22.0,专业但不便携)。如图:
串口调试助手(V5.0.2)
如果需要,可以在这里下载:
1,串口调试助手 UartAssist V5.0.2(2022最新版).zip
2,专业串口调试工具 MobaXterm Pro V22.0(2022最新版).zip

上面啰嗦了这么多,这里回到文章的重点:自定义COM口的属性,使串口调试显示更直观。由于项目中调试的设备很多(1次有5个设备同时监视),无奈在花费近2个多小时,通过对注册表的监控比较,总算是找到了解决办法。百度上是搜索不到解决办法的,算得上是全网首发了?

二、解决

设备管理器中中找到要修改的COM口,双击打开属性,切换至事件,复制以下内容,替换到以下代码中,并保存为.reg文件,点击文件,合并到注册表中,回到串口助手中刷新COM口即可。
得到COM口的信息

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\copy xxxxxx]
"FriendlyName"="display xxxxxx (COMx)"

其中:“copy xxxxxx”为从设备管理器中复制的COM属性,“display xxxxxx (COMx)”为要定义的显示内容, "COMx"中的x与设备管理器中的一致。
eg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\VID_10C4&PID_EA60\0001]
"FriendlyName"="LoRa (COM5)"

修改前后对比
这种方法可以解决多设备同时调试时显示混乱问题。但我觉得最好的方法还是在串口工具中直接修改,好处就是不要修改注册表,不足之处就是依赖软件开发者,更换串口助手后就无效了。所以想要一劳永逸,直接按照我这个改注册表吧 ?


本文标签:原创笔记总结Windows