终端交互式串口调试工具
首个版本采用 C 语言(C11)实现:
- 更适合系统级 API 串口编程和跨平台移植。
- 更低的运行时开销,更容易控制内存和 I/O 行为。
- 符合项目命名规范和嵌入式风格约束。
- Windows
- Linux
- 其他支持 C11 标准库和串口 API 的平台(如 macOS)
- 仅支持交互模式(无单次执行模式)。
- Ctrl+A 进入命令模式。
- 在监控模式输入
/可直接进入命令模式。(Ctrl+A 的便捷入口)。 - 命令模式下支持 HEX 与 ASCII 两种数据收发模式。
- Q 键退出命令模式返回监控模式。
- 左/右箭头键在当前命令行内移动光标。
- 上/下箭头键浏览最近 100 条已发送命令历史。
- 根据当前模式显示接收数据(HEX 或 ASCII)。
- TX/RX/SYS/ERR 输出包含毫秒级时间戳。
- 通过
-o选项支持日志文件输出。 - 通过
--crc选项支持自动附加校验和(xor、sum8、crc8、crc16-modbus、crc16-ccitt、crc32)。 - 通过
--mode指定初始模式(hex或ascii)。 - 命令模式支持
/help、/hex、/ascii。 - 命令模式支持
/version查看版本号。 - 命令模式支持
/crc <mode>动态切换校验模式(HEX 模式生效)。 - ASCII 模式下 CRC 自动禁用(启动参数与运行时切换均生效)。
- 无效的控制台输入字节会被忽略,因此输入法或意外的非十六进制输入不会阻塞命令输入。
cmake -S . -B build
cmake --build build --config DebugWindows 下写入 exe 文件信息/版本信息/企业信息:
在 CMakeLists.txt 的 if (WIN32) 区域修改以下字段:
SERIALFOX_COMPANY_NAMESERIALFOX_PRODUCT_NAMESERIALFOX_FILE_DESCRIPTIONSERIALFOX_LEGAL_COPYRIGHTproject(serialfox_c VERSION x.y.z ...)中的版本号
构建时会自动生成 4 段版本号:x.y.z.r(跨平台一致)。
其中 r 为 UTC 1970-01-01 起累计天数(作为版本修订号),用于 --version 和 /version 输出。
cmake -S . -B build
cmake --build build --config Release生成后在 serialfox.exe -> 属性 -> 详细信息 可查看上述字段。
./build/Release/serialfox -p COM3 -b 115200 -d 8 -s 1 -c N -o serial.logLinux 示例:
./build/serialfox -p /dev/ttyUSB0 -b 115200 -d 8 -s 1 -c N -o serial.logASCII 初始模式:
./build/serialfox -p /dev/ttyUSB0 -b 115200 --mode ascii带校验的发送:
# 使用 CRC16-Modbus 校验
./serialfox -p /dev/ttyUSB0 -b 115200 --crc crc16-modbus
# 使用 XOR 校验
./serialfox -p COM3 -b 9600 --crc xor
-p串口路径(必填)-b波特率(默认:115200)-d数据位(默认:8,允许:5..8)-s停止位(默认:1,允许:1 或 2)-c校验位(默认:N,允许:N/E/O)-o日志文件路径(可选)--version输出程序版本号并退出(若与其他参数同时出现,优先输出版本并忽略其他参数)--mode数据模式(可选,默认:hex):hex- 十六进制收发显示(发送支持 CRC)ascii- ASCII 收发显示(CRC 自动禁用)
--crc发送数据的校验和模式(可选),支持以下算法:xor- 简单异或校验sum8- 8位累加和crc8- 8位CRC校验crc16-modbus- Modbus协议CRC16crc16-ccitt- CCITT标准CRC16crc32- 32位CRC校验
/help显示命令帮助。/version显示程序版本号。/hex切换到 HEX 模式。/ascii切换到 ASCII 模式(自动禁用 CRC)。/crc <mode>在命令模式下切换发送 CRC(支持none、xor、sum8、crc8、crc16-modbus、crc16-ccitt、crc32)。