【STM32】USB程序烧录需要重新上电 & 软件复位方法

本文讲述了在使用STM32的USB虚拟串口功能时遇到的问题,即烧录后需要重启才能识别。作者提供了两种解决方案:直接插拔USB和手动芯片复位,以及尝试过但未成功的编程复位方法和在下载界面设置自动复位的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题

最近学习STM32的USB功能,主要是想要使用虚拟串口功能(VCP),发现每次烧录之后都需要重新上电才可以发现串口。
在这里插入图片描述

二、解决思路

2.1 直接插拔USB

最简单粗暴的方法就是断开USB,然后重新插回去,但是真的很麻烦。

2.2 给芯片复位

博主发现给芯片复位之后就可以识别出来USB,但是需要我每次自己手动按一下复位键,比较麻烦。

三、解决方法

3.1 别人的解决方法

下面是别人的方法,都是说写个代码来模拟复位或者USB重枚举等,但是我没成功,你们也可以自己试试看。
STM32 USB DEVICE 复位后 无法识别
STM32F40 USB虚拟串口 HAL库

3.2 在下载界面进行设置

在你设置的下载模式那里勾选下图第五步,这样子烧录之后就可以复位了。
在这里插入图片描述
在这里插入图片描述

### 使用DAPmini烧录STM32单片机教程 #### 准备工作 确保拥有如下工具和材料: - DAPmini烧录器 - STM32目标板 - USB数据线用于连接脑与DAPmini - 安装好的编程环境(如Keil MDK) #### 配置开发环境 安装并配置好适合STM32系列MCU的IDE,推荐使用Keil MDK。如果遇到类似`keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Flash\STM32F10x_128.FLM`这样的路径错误提示,则可能是由于缺少必要的设备包或是版本不匹配造成的[^1]。 对于上述提到的问题,可以尝试更新或重新安装对应的Device Family Pack (DFP),以确保所使用的闪存算法是最新的,并且兼容当前的目标器件。 #### 设置CubeMX中的下载模式 当利用STM32CubeMX初始化项目时,务必确认已正确设置了下载/调试接口选项。如果不慎选择了不当的设置可能会造成后续无法识别DAP仿真器的情况发生。应选择SWD作为Debugging Interface,并勾选Enable Debug after launch以便于在线调试[^2]。 #### 正确操作流程 为了防止因反复插拔而引起的不稳定情况,在初次连接前先断重启一次计算机,接着按照以下顺序执行: 1. 将USB一端接入PC主机,另一端接到DAPmini; 2. 开启源开关启动目标板; 3. 打开编译链接后的HEX/BIN文件所在的工程; 4. 调试->开始会话(Start Session) 或者直接点击下载按钮进行程序传输; 5. 如果一切顺利的话应该可以看到进度条直至完成整个过程;如果有任何警告信息弹出,请仔细阅读其描述内容并据此调整相应参数设定直到成功为止。 #### 处理常见问题 针对“找不到Cortex-M3”等问题,这通常是因为驱动未能被正确加载或者是硬件本身存在问题所致。建议卸载现有驱动程序后再重试安装最新的官方驱动版本。另外也要留意是否因为静等原因损坏了接口部分,必要时更换新配件测试看能否恢复正常功能。 对于某些情况下即使正确设置了仍然存在通讯失败的现象,可考虑通过串口方式借助第三方工具如MCUIsp来绕过原有途径实现解救目的,尤其是在怀疑内部BOOTPIN引脚状态异常的情况下尤为适用。 ```bash # 示例命令行调用MCUIsp上传固件 mcuisp -c com3 -b 9600 -w firmware.hex ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值