【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 在下载界面进行设置

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

### STM32 USB转TTL烧录程序具体步骤 对于STM32系列微控制器,特别是型号如STM32F103C8T6,在采用USB转TTL方式进行程序烧录时,需遵循特定的操作流程以确保过程顺利。以下是详细的烧录步骤: #### 准备工作 - **硬件连接**:确认已通过USB转TTL模块正确连接至STM32开发板的相应管脚(TX、RX、GND)[^1]。 #### 设置环境 - **配置启动模式**:为了进入ISP(In-System Programming)模式并允许程序下载到内部Flash中,需要设置BOOT0引脚为高平(通常通过跳线实现),而NRST保持浮空状态或接地以便后续复位操作。 #### 编译与生成目标文件 - 使用Keil uVision或其他IDE编译工程项目,并确保输出格式为目标设备支持的标准Hex文件形式。此文件位于项目的`Objects`子目录内[^2]。 #### 执行烧录动作 - 启动专用编程软件(例如FlyMcu或STM32CubeProgrammer),并通过界面指定要上传的目标Hex文件路径[^3]。 - 在编程工具中选择正确的COM端口号对应于所使用的USB转TTL适配器接口[^4]。 - 完成上述准备工作后,点击“开始编程”按钮发起实际的数据传输请求;此时应立即手动触发一次MCU复位事件——即按下Reset键来激活引导加载程序[^5]。 #### 验证结果 一旦提示烧录成功,则表明应用程序已被正确写入芯片内的非易失性存储区域。最后一步是将BOOT0重新设回低平位置,使下次上能够正常运行新安装的应用代码而不是再次尝试更新固件版本。 ```bash # 假定使用命令行工具进行验证 st-info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值