CH347应用 USB转JTAG功能之:probe-rs搭配CH347下载MCU命令全指南

目录

前言

probe-rs 是一款基于 Rust 开发的跨平台开源嵌入式烧录/调试工具,替代传统 OpenOCD,支持 ARM、RISC-V 主流MCU,兼容J-Link、CH347、ST-Link、FTDI、DAPLink等调试器,具备烧录、擦除、校验、在线调试、RTT 日志等功能,是嵌入式开发常用工具。

probe-rs 项目地址https://github.com/probe-rs/probe-rs

CH347是一款高速USB总线转接芯片,提供USB转异步串口、I2C同步串行接口、SPI同步串行接口以及JTAG/SWD接口,配套生态丰富,OpenOCD 等调试烧录软件均已适配CH347,是嵌入式MCU或FPGA开发常用的调试器。具体信息可参考:CH347-高速USB转串口、JTAG/SWD、SPI、I2C芯片介绍

官方原版 probe-rs 在Windows端仅支持WinUSB 驱动,对于一些CH347厂商驱动的

使用者来说不太方便。

本指南使用的第三方改造后的 probe-rs 开源项目,专门针对 Windows 平台做了CH347厂商驱动适配,安装完厂商驱动后可直接在 Windows 系统使用。

改造版项目地址:

https://github.com/ZhiyuanYuanNJ/probe-rs

本文测试硬件为CH347F + STM32F103C8T6

前置使用条件

一、固件烧录命令

支持 HEX、BIN、ELF 三种常用固件格式,包含基础烧录、校验、擦除、预检测等全场景操作。

1.1 基础烧录(HEX文件)

最基础的固件烧录指令,仅完成固件写入,无校验步骤,适合快速测试。

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format hex firmware.hex

1.2 烧录+后置校验(防写入错误)

烧录完成后自动回读固件数据对比校验,避免写入异常、数据丢失问题,提升烧录可靠性。

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format hex --verify firmware.hex

1.3 烧录+校验+自动复位(高频使用)

烧录校验完成后,自动复位MCU,固件直接生效,无需手动断电复位,适配日常调试、量产测试场景。

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format hex --verify firmware.hex && probe-rs.exe reset --chip STM32F103C8

1.4 整片擦除后烧录

烧录前自动擦除MCU整片闪存,彻底清除旧固件、残留数据,解决新旧固件冲突、碎片数据导致的运行异常问题。

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format hex --chip-erase firmware.hex

1.5 预检测烧录(重复固件跳过)

烧录前对比MCU现有固件与待烧录固件,内容一致则跳过烧录,节省重复烧录时间,适合批量调试场景。

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format hex --preverify firmware.hex

1.6 BIN文件烧录(需指定基地址)

BIN格式固件无内置地址信息,必须通过 --base-address 指定MCU闪存起始地址,STM32F1系列默认起始地址为 0x08000000

powershell 复制代码
probe-rs.exe download --chip STM32F103C8 --binary-format bin --base-address 0x08000000 firmware.bin

二、芯片复位命令

单独触发目标MCU硬件复位,可用于烧录后手动复位、程序卡死重启等场景。

2.1 复位目标MCU芯片

powershell 复制代码
probe-rs.exe reset --chip STM32F103C8

三、闪存擦除命令

单独执行MCU闪存擦除操作,可清空整片闪存数据,适配需要彻底清除固件的场景。

3.1 整片闪存擦除

powershell 复制代码
probe-rs.exe erase --chip STM32F103C8

四、固件校验命令

不执行烧录操作,仅回读MCU内部固件与本地固件文件对比,验证现有固件完整性,排查固件损坏、写入异常问题。

4.1 独立回读校验

powershell 复制代码
probe-rs.exe verify --chip STM32F103C8 --binary-format hex firmware.hex

五、设备与芯片信息查询

用于排查设备连接异常、确认芯片型号、核对调试器状态,是调试排错的常用指令。

5.1 列出所有已连接调试器

查看电脑当前识别到的所有probe调试设备,多探针场景可用于确认CH347设备是否正常识别。

powershell 复制代码
probe-rs.exe list

5.2 查看探针与目标芯片详细信息

获取CH347探针状态、MCU芯片型号、闪存容量、硬件版本等详细参数。

powershell 复制代码
probe-rs.exe info --chip STM32F103C8

5.3 查询支持的芯片型号列表

powershell 复制代码
# 查看probe-rs支持的全部芯片型号
probe-rs.exe chip list

# 筛选查看 STM32F1 系列芯片
probe-rs.exe chip list | findstr "STM32F1"

# 精准筛选 STM32F103 系列芯片
probe-rs.exe chip list | findstr "STM32F103"

六、固件烧录后直接运行(仅ELF格式)

仅支持 ELF格式 固件,烧录完成后自动复位并运行程序,无需额外执行复位指令,HEX、BIN格式固件不支持该命令。适合开发调试阶段快速验证程序运行效果。

powershell 复制代码
probe-rs.exe run --chip STM32F103C8 firmware.elf

七、常用可选参数对照表

通用可选参数,可搭配上述所有命令使用,适配不同硬件场景与调试需求。

八、使用注意事项

当前适配CH347的probe-rs项目,仅支持 CH347 JTAG 下载调试,SWD 暂未适配。

相关推荐
fthux6 小时前
装闭 RenoPit 源码解析(09):AnalysisEngine装修闭坑分析主流程
人工智能·ai·开源·github·open source·renopit
ovO7 小时前
我按下“发送”之后:DeepSeek Harness 如何把一次请求变成 1,177 个增量片段
人工智能·开源·deepseek
Gem_S_6087 小时前
从 Chonkie 到 RAGFlow:主流开源知识库 Chunking 工具横向测评
开源
JackieDYH7 小时前
Git 与 GitHub 新电脑配置指南(从零开始)
git·github·工具·使用教程
Devlab7 小时前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
Dr.kangder10 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
zlinear数据采集卡12 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛1392462567312 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
Rocktech_ruixun14 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人
振南的单片机世界14 小时前
SysTick硬核拆解:既是HAL_Delay的“心跳”,也是RTOS的“节拍器”
arm开发·stm32·单片机·嵌入式硬件