最近搞arduino和pc端软件数据交互,试了不少串口调试工具,挑选几个有代表性的来简单介绍介绍。
通常原生支持USB的arduino,都会有两种串口:物理串口以及通过MCU的USB 数据线提供的USB-cdc。
所谓USB-cdc是受到USB协议标准支持的一类设备,基本上等同于物理串口,但是由于他本质上还是USB设备,实际上并不是通过串口芯片在发送接收数据,因此速度快,稳定性高,不需要电平转换,也节约了USB转串口的芯片。但是也带来了一些问题:那就是软件不一定能够支持这种串口——并且我自己写的软件之前也不能做到兼容。
所以我在寻找(更换)串口调试工具时,重点关注了USB-cdc的支持。实际上后来发现了一个解决办法,见末尾。
下边便是各个串口工具的简单评价:
RealTerm - 开源 - 多平台
虽然UI落后时代,软件需要安装,但是体积非常小,功能齐全,支持命令行调用,支持直接写入到文件。支持USB CDC
SSCOM - 单文件便携版
UI略丑,基本功能齐全,比RealTerm还强的一个特色功能是支持计算modbuscrc-16验校计算。支持USB CDC
HTerm - 开源 - 多平台 - 单文件便携版
专业小巧的串口工具,优势是可以多行显示字符、hex、bin,比前两者漂亮很多。不支持USB CDC。
ComTool - 开源 - 便携版
相似的项目有很多,就列了这一个出来。UI更加现代,该有的选项也都有,缺点体积略大。
Serial Studio - 开源 - 便携版
更加漂亮并且同样体积巨大。可以自定义仪表盘,但是有些学习成本(目前我还不会)
vofa+ - 多平台 - 便携版
兼顾传统字节流调试助手风格的数据收发功能,提供了图形化调试工具(目前我还不会)。
提供协议和控件的插件接口。目测已经暂停开发。
USB-cdc兼容
部分串口助手默认不支持Arduino的USB-cdc,可以通过开启Dtr选项从而改善兼容。
DTR(Data Terminal Ready)和 RTS(Request to Send)是 RS-232C 接口标准中的两个引脚,它们分别具有以下含义:
- DTR(数据终端准备好):当该引脚为高电平时,表示数据终端设备(如计算机)已经准备好进行数据传输。
- RTS(请求发送):当该引脚为高电平时,表示数据终端设备(如计算机)请求串口设备(如 Modem)开始数据传输。
在实际应用中,由于增加了接线、提高了控制的复杂程度,串口DTR 和 RTS 物理接线通常不接,但是在USB-cdc虚拟串口中,设备可能会设置这样的信号。




