> 一个免安装的 exe,插上板子就出彩色日志:自动找串口、自动识别波特率、中文不乱码,日志里点一下报错就跳到代码。免费开源,Windows / Linux 都能用。
![QCCOM 主界面:彩色日志]
## 先说几个你一定遇到过的场景
做单片机的同学,下面这些场景应该都不陌生:
- 板子插上,COM 口又变了。设备管理器里翻半天,终于找到是 COM7。
- 拿到一块别人的板子,不知道波特率。115200?满屏乱码。9600?还是乱码。74880?……
- 好不容易出字了,中文日志全是「锟斤拷」。
- 日志刷得飞快,一片白底黑字,`ERROR` 埋在几千行里根本找不到。
- 想在 Linux 板子上跑个 `top`、改个 `menuconfig`,串口助手直接花屏。
- 日志里打了一句 `main.c:123 assert failed`,然后你要切到另一个软件打开工程、找文件、翻到第 123 行。
- 桌面上同时开着:串口助手、代码阅读器、网络调试助手、文件比较工具、计算器……任务栏挤成一排。
我自己被这些事情折磨久了,就干脆写了一个工具,把它们都解决掉。它叫 **QCCOM**。
## QCCOM 是什么
QCCOM 是一个给嵌入式开发者用的串口日志 + 调试工具:
- **用 Rust 编写**,只有一个可执行文件,免安装、不需要运行库、不需要管理员权限,启动不到一秒;
- **支持 Windows 10/11 和 Linux**;
- **完全免费,Apache-2.0 开源**;
- 界面是深色科技风(也有浅色主题),10 种界面语言,自动跟随系统。
它的核心是一个「插上就能用」的串口日志工具,然后在这个基础上,把嵌入式开发里最常来回切换的那几样东西(看代码、比文件、调网络、各种小计算器)都放进了同一个窗口。
下面挑重点说。
## 一、插上就能用:串口、波特率、编码都不用你操心
**自动扫描串口。** QCCOM 每秒扫描一次,列表里直接显示芯片型号和 VID:PID,比如 `COM5 · CH340 (1a86:7523)`,一眼就知道哪个是你的板子。新插入的设备会自动选中;拔掉再插回来,自动重连,不用再点一次「打开」。
**自动识别波特率。** 不知道波特率时,在设备输出日志的时候点一下「⚡ 自动」。QCCOM 会依次尝试 18 种常用波特率,给收到的数据打「可读性」分,选最好的那个直接连上。
![自动识别波特率:乱码一键变成正常日志]()
**中文不乱码。** 支持 UTF-8、GBK / GB2312、ASCII、Latin-1。关键是:**切换编码后,之前已经收到的历史日志会立即按新编码重新显示**,不用复位板子重新打一遍。
## 二、日志终于好看了,也好找了
QCCOM 的日志区是按 Linux 终端的标准来做的:
- 支持 ANSI 颜色(16 色 / 256 色 / 真彩色),你固件里打的彩色日志原样显示;
- 没打颜色也没关系,`[ERROR]`、`E (123) tag:`(ESP-IDF)、`E/tag:`(安卓风格)、`<err>`(Zephyr)这些常见格式会**自动按级别着色**;
- 毫秒时间戳、关键词高亮、搜索、按级别过滤(只想看报错?一点就只剩 ERROR);
- 文本 / HEX / 混合三种视图;
- 几十万行日志照样流畅滚动,`Alt+滚轮` 快速滚动,`Ctrl+G` 按时间跳转;
- 可以把之后的每一行实时写入文件,按大小或时长自动分卷,适合挂一晚上抓偶发问题。
## 三、真·串口终端:vi、top、menuconfig 都能跑
玩 Linux 板子、U-Boot 的同学应该懂:普通串口助手只能「发一行、收一行」,一跑 `top` 就是一坨乱码。
QCCOM 内置了完整的 VT100 / xterm 终端仿真。点顶栏的「终端」或者按 `` Ctrl+` ``,键盘直通设备,`vi`、`top`、`less`、`menuconfig` 都能正常显示,还支持回滚历史、鼠标选择复制、粘贴,窗口大小会同步给板子。
![终端模式:在开发板上直接跑 top 和 vi]()
## 四、日志和代码,终于不用切窗口了
这是我自己最常用、也最想推荐的功能。
**日志里的报错,点一下就跳到代码。** 日志里出现 `main.c:123` 这样的文件位置会自动加下划线,`Ctrl+点击` 就在日志旁边打开代码,并且停在那一行。日志里出现 HardFault 或 assert,状态栏也会提示你「放在代码旁边看」。
![串口日志和代码并排显示]()
**看代码的体验接近 Source Insight。** 在日志旁边打开你的固件工程:
- 文件树、多标签、按文件名快速打开;
- C / C++ **跳转到定义、查找引用、宏展开并直接算出数值**(再也不用一层层追 `#define`);
- 上下文窗口、调用关系、书签、语义着色;
- `#if 0` 和没定义的 `#ifdef` 分支自动变灰;
- 装了 clangd 并且工程有 `compile_commands.json` 时自动用 clangd,没有也能用内置索引;
- 快捷键方案可以切换成 VS Code / Source Insight / Keil,不用重新适应。
![宏展开直接算出数值、跳转到定义]()
**全工程搜索很快。** 多线程 + 内存缓存,1 万个文件的工程,首次搜索约 0.1 秒,边输入边出结果。可以一键排除厂商库、编译输出,或者按 `.gitignore` 规则过滤。
![全工程搜索和搜索范围]()
**两个页面并排看。** 不只是日志和代码,任何页面都可以放到右边或下边:串口日志 + 代码、代码 + 文件比较、电路仿真 + 仿真串口……用到的时候它会自己出现(比如烧录完后日志自动出现在代码旁边),不想要的时候也不会打扰你。`Ctrl+Tab` 可以在最近用过的页面、工具、文件之间快速切换。
![Ctrl+Tab 切换器]()
## 五、调试助手该有的,一个不少
- **日志数值实时画波形**:调 PID、看传感器数据,不用再把日志导进 Excel 画图;
- **快捷命令**:多组一键发送的命令(文本或 HEX),`Alt+1…9` 直接发,也可以按间隔依次发整组;
- 过滤 / 高亮规则、二进制协议分帧和校验检查、自动应答;
- **Modbus RTU / TCP 主站**、XMODEM / YMODEM 发送文件、发送时自动加 CRC、AT 指令助手;
- [Rhai](https://rhai.rs) 测试脚本,写几行就能做自动化测试;
- DTR / RTS / Break 控制,一键复位(含 ESP32 进下载模式的时序);
- **串口共享到网络、虚拟串口**:烧录工具和别的串口软件可以同时用同一个口,不用来回关;
- 按原时序回放日志、多窗口、端口别名。
![日志数值实时画波形]()
## 六、串口、网络、蓝牙可以同时在线
做物联网的同学经常要一边看设备串口,一边看 MQTT 服务器收到了什么。以前得开两三个软件。
QCCOM 里串口和网络连接**可以同时连着**,各自一份日志,也可以按时间合并成一份看:
- TCP 客户端 / 服务器(多客户端)、UDP、WebSocket;
- MQTT 3.1.1(TLS、用户名密码、QoS 0–2、retain、多个订阅);
- 低功耗蓝牙(BLE):扫描、连服务、订阅通知,Nordic UART、HM-10 这类蓝牙串口模块自动识别;
- 类似 Postman 的 HTTP 接口调试,调开发板上的 REST 接口;
- SSH / Telnet 远程登录开发板和网关。
## 七、工具箱:嵌入式常用小工具都在这
按 `Ctrl+Shift+B` 打开工具箱,支持搜索(包括拼音首字母)、收藏和最近使用:
- **通信**:TCP、UDP、MQTT、BLE、WebSocket、SSH / Telnet、HTTP 接口、Modbus 从站、SLCAN CAN 调试、USB HID;
- **服务**:TFTP / HTTP 文件服务器(给 U-Boot 传镜像很方便)、本地 MQTT 服务器、Syslog 接收、局域网设备发现;
- **计算**:校验计算(含自定义 CRC、文件 MD5 / SHA256)、数据转换、时间戳、子网计算、UART 波特率误差计算、电阻 / 分压 / NTC / PWM / I2C 上拉计算;
- **固件**:HEX / BIN / S-record / ELF 转换合并、带 CRC 的升级包头、Map / ELF 查看器、**两次编译的体积对比**(GCC / Keil / LLVM 的 map 都支持)、最坏栈深度分析、中断向量表、SVD 寄存器查看、Keil / IAR 工程导入生成 `compile_commands.json`;
- **其它**:位域计算器、C 结构体解析、CBOR / MessagePack / Protobuf 解码、VCD 波形查看、字模取模、二维码……
![工具箱]()
![Map 查看器和位域计算器]()
## 八、比较合并、Git、本地历史
- **比较与合并**(`Ctrl+Shift+M`):文本比较带行内差异、文件夹比较和同步、十六进制比较(能自动对齐插入的字节)、HEX 按地址比较、Git 冲突三方合并。在资源管理器里右键就能「用 QCCOM 比较」;
- **Git**:分支、提交图、差异、提交推送、按代码块暂存,每次提交还会记录固件体积;
- **外部修改和本地历史**:现在很多人用 AI 改代码,或者 Keil、CubeMX 会自动改工程文件。QCCOM 会把「别的程序改了什么」列出来,逐块保留或还原;每个文件自动留版本,可以打存档点,整个工程一键回到之前的状态。
![比较与合并]()
## 九、彩蛋:电路仿真
给初学者准备的:在面包板上搭电路、通电看结果,接错了真的会「冒烟」。带万用表、示波器、逻辑分析仪,单片机引脚不写代码也能动起来,还能生成 Arduino / STM32 HAL / ESP-IDF / 51 代码,仿真出来的串口直接接到 QCCOM 的日志里。自带 72 个带讲解的示例。没有板子也能先玩起来。
## 为什么这么小、这么快
QCCOM 用 Rust + egui 编写,没有 Electron、没有浏览器内核,所以:
| | QCCOM |
|---|---|
| 安装 | 不用装,一个 exe 双击就跑 |
| 体积 | Windows 版约 12 MB |
| 运行库 | 不需要 |
| 管理员权限 | 不需要 |
| 启动 | 不到 1 秒 |
| 日志量 | 几十万行流畅滚动 |
| 便携 | exe 旁边建一个 `qccom-data` 文件夹就进入便携模式,U 盘带着走 |
功能虽然多,但界面上平时只看得到串口和日志,不常用的功能收在右键菜单、`⋯` 菜单和命令面板(`Ctrl+Shift+P`)里,第一次打开不会被一堆按钮吓到。
![浅色主题]()
## 下载和快速上手
**下载地址:**
- https://www.zenghi.com
| 系统 | 文件 | 说明 |
|---|---|---|
| Windows 10 / 11 x64 | `qccom-windows-x64.exe` | 双击运行。需要已装好 USB 转串口驱动(CH340、CP210x、FTDI 等) |
| Linux x64 | `qccom-linux-x64` | `chmod +x qccom-linux-x64 && ./qccom-linux-x64` |
**三步上手:**
1. 插上板子,左边列表里选端口(新插入的会自动选中);
2. 点「连接」或按 `F5`,不知道波特率就点「⚡ 自动」;
3. 看日志,底部输入命令回车发送。
**两个小提示:**
- Windows 第一次运行可能弹出 SmartScreen「无法识别的应用」,这是因为程序暂时还没有代码签名,点「更多信息 → 仍要运行」即可。每个版本都附带 `SHA256SUMS.txt`,可以自己校验文件。
- Linux 下普通用户打开串口需要加入 `dialout` 组(Arch 是 `uucp`):
```bash
sudo usermod -aG dialout $USER
# 重新登录后生效
```
QCCOM 自带自动更新,有新版本会提示,下载后做 SHA-256 校验再替换。
## 你想要什么功能,直接提
QCCOM 左侧活动栏有一个「社区」入口,可以直接在软件里提需求、给别人的需求投票,票数高的会优先做进下一个版本。
最后问大家一个问题:**你平时用串口最烦的是什么?** 波特率、乱码、日志太乱,还是窗口切来切去?评论区告诉我,我会一条条看。