版本: 1.4 | 作者: GHowe | 日期: 2026-10-14
面向 Windows 的串口固件下载工具,支持图形界面、命令行配置和无界面自动下载。
双击 GHowe_Downloader.exe,选择固件和串口后开始下载。
也可以从终端启动:
.\GHowe_Downloader.exe.\GHowe_Downloader.exe `
--file firmware.bin `
--port COM3 `
--baudrate 115200 `
--wait-packet-ack `
--packet-ack-check-data `
--packet-ack-expected-data "0x06" `
--packet-ack-data-format HEX.\GHowe_Downloader.exe `
--auto-start `
--exit-on-complete `
--file firmware.bin `
--port COM3 `
--baudrate 115200该模式不创建窗口。Python 源码运行时通过标准输出/错误输出报告进度和结果;当前 Windows 图形版 EXE 不提供终端日志,外部调用应等待进程退出并检查退出码。需要终端日志时使用源码入口,见 开发说明。
上面的最简示例未配置 ACK,数据写出后仍会报告结果未知;成功必须有符合设备协议的末包确认,见下方完整自动下载示例。
| 退出码 | 含义 |
|---|---|
0 |
下载成功 |
1 |
串口打开、配置校验或下载未完成,包含取消和结果未知 |
2 |
缺少固件文件或串口参数 |
退出 1 不表示设备没有收到数据。缺少有效完成 ACK、写入后超时/短写/取消,或发送了没有完成确认的结尾命令,都可能是结果未知;不得据此自动重发或重烧。
- 串口配置 - 支持波特率、数据位、停止位和校验位配置
- 文件拖放 - 支持拖放
.bin文件,也可点击拖放区选择文件 - 三阶段 ACK 配置 - 开始命令、数据包和末尾数据包可独立配置
- 无界面自动下载 - 支持外部程序调用,并通过日志和退出码反馈结果
- 下载设置弹窗 - 下载参数集中配置,主界面保持简洁
- 一键启停 - 单个按钮切换开始和停止状态
- 实时输入验证 - 支持 HEX、ASCII、DEC 格式校验和状态提示
- 转义字符 - 支持
\r、\n、\t、\0、\xHH、\\ - 可调整布局 - 可拖动分割器调整操作区和日志区高度
- 日志过滤 - 可选择显示警告、信息和调试日志
- 发送开始命令
- 数据包大小可配置为 1–4096 字节
- 支持 CRC16-MODBUS、CRC16-CCITT、CRC16-XMODEM 和 CRC32
- 支持开始命令、普通数据包和末尾数据包三阶段 ACK 验证
- 支持下载完成后发送结尾字符串
每个 ACK 阶段支持:
- 长度判断
- HEX、ASCII、DEC 数据匹配
- CRC 校验(仅数据包和末尾数据包)
- AND、OR 逻辑组合
- 独立超时时间
从项目的 GitHub Releases 页面下载最新版本 GHowe_Downloader_vX.Y.exe,保存到任意目录后即可运行。
注意事项:
- 工具仅支持下载
.bin固件文件 - 文件大小为 1 字节至 64 MiB,按数据包读取
- 使用前请确认目标串口没有被其他程序占用
- 如果 Windows 阻止首次运行,请在文件属性或安全提示中确认文件来源后再打开
双击 EXE 后按以下步骤操作:
- 拖放
.bin文件到文件区域,或点击该区域选择文件。 - 选择串口号、波特率、数据位、校验位和停止位。
- 点击「下载设置」,配置数据包大小、CRC 和三阶段 ACK。
- 点击绿色「开始下载」。下载过程中可点击红色按钮停止。
- 在日志区查看发送进度、ACK 验证和下载结果。
可拖动界面分割器调整操作区与日志区的高度。
默认情况下,命令行参数用于预填充图形界面配置。
基本示例:
.\GHowe_Downloader.exe `
--file firmware.bin `
--port COM3 `
--baudrate 115200完整配置示例:
.\GHowe_Downloader.exe `
--file bootloader.bin `
--port COM3 `
--baudrate 115200 `
--packet-size 512 `
--start-command "START_FLASH\r\n" `
--add-packet-crc `
--packet-crc-type CRC16-MODBUS `
--wait-packet-ack `
--packet-ack-check-data `
--packet-ack-expected-data "0x06" `
--packet-ack-data-format HEX查看所有参数:
.\GHowe_Downloader.exe --help详细参数请参考 命令行使用指南。
增加 --auto-start 后,工具会跳过图形界面并立即执行下载:
.\GHowe_Downloader.exe `
--auto-start `
--exit-on-complete `
--file firmware.bin `
--port COM3 `
--baudrate 115200 `
--packet-size 512 `
--wait-packet-ack `
--packet-ack-check-data `
--packet-ack-expected-data "0x06" `
--packet-ack-data-format HEX该方式适合串口助手、批处理和其他外部程序调用。
| 转义序列 | 说明 | 实际值 |
|---|---|---|
\r |
回车符 | 0x0D |
\n |
换行符 | 0x0A |
\t |
制表符 | 0x09 |
\0 |
空字符 | 0x00 |
\xHH |
十六进制字符 | 如 \x1A = 0x1A |
\\ |
反斜杠 | \ |
示例:
START_FLASH\r\n
OK\r\n
0x06 0xAA
6 170 187
1. 打开串口
2. [可选] 发送开始命令
3. [可选] 等待开始命令 ACK
4. 循环发送数据包
├─ 读取固件数据
├─ [可选] 追加 CRC
├─ 发送数据包
├─ [可选] 等待数据包 ACK
└─ 更新进度
5. [可选] 验证末尾数据包 ACK
6. [可选] 发送结尾字符串
7. 关闭串口
匹配数据是整帧内容,包含启用的帧末 CRC。长度和数据检查同时启用时,两者帧长度必须一致,与 AND/OR 无关;只检查 CRC 时也须配置帧长度。
所有启用的检查项都必须通过:
✓ 长度检查(期望:3,实际:3)
✓ 数据匹配(整帧内容,包含两字节 CRC)
✓ CRC 校验
→ 结果:通过
任意一个检查项通过即可:
✓ 长度检查(期望:3,实际:3)
✗ 数据匹配(整帧内容不符)
✗ CRC 校验
→ 结果:通过
| CRC 类型 | 长度 | 说明 | 常见应用 |
|---|---|---|---|
| CRC16-MODBUS | 2 字节 | 初始值 0xFFFF,多项式 0xA001,小端 | Modbus RTU |
| CRC16-CCITT | 2 字节 | 初始值 0xFFFF,多项式 0x1021,大端 | XMODEM、Bluetooth |
| CRC16-XMODEM | 2 字节 | 初始值 0x0000,多项式 0x1021,大端 | XMODEM |
| CRC32 | 4 字节 | 标准 CRC32,小端 | ZIP、PNG、Ethernet |
外部程序可以启动 EXE 并传入完整下载参数:
.\GHowe_Downloader.exe `
--auto-start `
--exit-on-complete `
--file firmware.bin `
--port COM3调用方必须等待进程退出,按前述退出码及结果未知规则处理。需要读取日志时调用 Python 源码入口;当前图形版 EXE 的无控制台构建不承诺标准输出/错误输出。
可能原因:
- 串口被其他程序占用
- 串口号不存在
- 当前用户权限不足
处理方法:关闭其他串口工具,确认设备管理器中的串口号,然后重新运行。
可能原因:设备未响应、超时时间过短或 ACK 格式配置错误。
处理方法:适当增加超时时间,确认设备实际响应,并检查 ACK 数据格式。
查看日志中的实际接收数据,确认预期数据和格式一致。多个检查条件使用 AND 模式时,所有条件都必须满足。
可以尝试增大数据包、提高波特率,或在设备协议允许时减少 ACK 等待。
待发布,最新正式版本为 v1.3;以下为累计源码变更。
- 下载核心供串口助手本地下载和远程主控端下载共用,保留既有分包、CRC 和 ACK 协议。
- 检测串口短写,累计分段到达的 ACK,保留后续帧数据;末包按对应配置等待确认。
- 改善等待 ACK 时的取消响应,在线程退出时关闭串口。
- 线程执行/关闭异常保留为可见的失败或未知结果;GUI 等待具体线程退出并完成结算后才允许下一次下载,避免原生退出和迟到回调影响新任务。
- 校验文件大小和协议参数;缺少有效完成确认时报告结果未知,不自动重发或重烧。
- 补齐类、构造参数和结果语义说明;修正包内版本号与文档版本不一致。
离线回归入口与验收边界见 开发说明;源码验证不代表新 EXE 或真实设备已经验收。
- 新增无界面自动下载模式
- 支持通过标准输出、标准错误输出和退出码反馈下载结果
- 支持串口助手和其他外部程序直接调用
- 新增 Git tag 触发的 GitHub Release 自动构建流程
- 发布文件自动追加版本号,Release 说明使用 tag 指向提交的完整提交信息
- 修正 ACK 数据匹配参数示例
- 下载配置移入独立「下载设置」弹窗
- 开始和停止合并为单个切换按钮
- 拖放区支持点击选择文件
- 文件选择对话框记忆当前路径
- 窗口最小高度由 750 缩小至 550
- 支持拖动调整配置区和日志区高度
- 优化文件拖放区空间占用
- 禁用配置控件的滚轮响应,防止误操作
- 添加应用图标
- 增加完整命令行参数支持
- 支持开始命令、数据包和末尾数据包三阶段 ACK
- 支持 HEX、ASCII、DEC 实时输入验证
- 支持转义字符和日志过滤
MIT License
作者: GHowe
联系: 844396800@qq.com