打印
[其他ST产品]

STM32L0热插拔时不启动程序

[复制链接]
331|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
咚了个咚|  楼主 | 2025-4-2 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的代码刷入 STM32L0xx 系列控制器,当断开ST-Link  并重新插入为芯片供电时,程序没有运行需要硬件复位才能运行此代码。
没有设计复位按钮。[backcolor=var(--darkreader-background-ffffff, #141617)]如何实现热插拔时启动程序

[backcolor=var(--darkreader-background-ffffff, #141617)]

[backcolor=var(--darkreader-background-ffffff, #141617)]

使用特权

评论回复
沙发
公羊子丹| | 2025-4-3 07:36 | 只看该作者
可能是 BOOT 配置的问题,你检查一下 BOOT0/BOOT1 引脚有没有正确连接?如果 BOOT0 处于高电平,可能会进入系统 Bootloader,而不是你的程序。

使用特权

评论回复
板凳
周半梅| | 2025-4-3 07:37 | 只看该作者
你试试在 SystemInit 里手动设置 RCC->CSR |= RCC_CSR_RMVF; 清除复位标志,有时候掉电后 MCU 可能进入异常状态,需要手动清理。

使用特权

评论回复
地板
帛灿灿| | 2025-4-3 07:37 | 只看该作者
这个问题看着像是电源上电顺序导致的,建议你用示波器看看 VDD 和 NRST 引脚的波形,确认是否存在不稳定情况。

使用特权

评论回复
5
童雨竹| | 2025-4-3 07:38 | 只看该作者
你可以尝试在 main 函数里加一段代码检查 RCC->CSR 的复位原因,并手动触发 NVIC_SystemReset() 试试看。

使用特权

评论回复
6
万图| | 2025-4-3 07:39 | 只看该作者
你试试在 CubeMX 里开启 IWDG(独立看门狗),这样如果 MCU 没有正常启动,看门狗超时会自动复位,可能能解决你的问题。

使用特权

评论回复
7
Wordsworth| | 2025-4-3 07:40 | 只看该作者
STM32L0 有低功耗模式,你看看是不是进入了 STOP 或 STANDBY 模式,导致上电后 MCU 没有正常运行?

使用特权

评论回复
8
Bblythe| | 2025-4-3 07:41 | 只看该作者
你的供电电路稳定吗?如果电源上升时间过长或者波动大,可能 MCU 没有正确上电复位,导致程序卡住。

使用特权

评论回复
9
Pulitzer| | 2025-4-3 07:42 | 只看该作者
你试试在 startup_stm32l0xx.s 里加个 BKP->CR |= BKP_CR_TAMP1E; 之类的代码,看能不能让芯片在上电后更快启动。

使用特权

评论回复
10
Uriah| | 2025-4-3 07:43 | 只看该作者
可以试着外加一个上拉电阻(10KΩ 左右)到 NRST 引脚,避免 MCU 复位信号不稳定导致程序未正常启动。

使用特权

评论回复
11
Clyde011| | 2025-4-3 07:44 | 只看该作者
你看看是不是 ST-Link 在调试模式下设置了某些寄存器,导致掉电后 MCU 运行模式不正常?可以尝试使用 Option Bytes 禁止调试模式后再试。

使用特权

评论回复
12
elephant00| | 2025-4-3 11:04 | 只看该作者
可能是电源问题,热插拔时,由于电源的瞬间波动或不稳定,可能导致STM32L0无法正常启动。

使用特权

评论回复
13
elephant00| | 2025-4-3 11:04 | 只看该作者
特别是当设备从断电状态迅速切换到通电状态时,电源线的浪涌电流可能对电源稳定性造成影响。

使用特权

评论回复
14
stormwind123| | 2025-4-3 11:09 | 只看该作者
用示波器来监测复位信号是否正常。

使用特权

评论回复
15
两只袜子| | 2025-4-3 12:36 | 只看该作者
热插拔过程中,复位信号可能受到干扰或未能正确触发,导致STM32L0无法正确复位并进入程序执行状态。

使用特权

评论回复
16
jcky001| | 2025-4-3 13:45 | 只看该作者
如果STM32L0的程序存在错误,或者配置不正确,可能导致在热插拔后无法正常启动。

使用特权

评论回复
17
cr315| | 2025-4-3 14:59 | 只看该作者
看看引脚配置、时钟配置是否有误吧。

使用特权

评论回复
18
laocuo1142| | 2025-4-3 16:56 | 只看该作者
可能是硬件连接问题吧。

使用特权

评论回复
19
flycamelaaa| | 2025-4-3 17:24 | 只看该作者
热插拔时,由于连接不良或接口松动,可能导致STM32L0与其他组件之间的通信或电源连接中断,从而无法正常启动。

使用特权

评论回复
20
powerantone| | 2025-4-3 18:16 | 只看该作者
试试在电源设计中加入浪涌抑制电路或稳压电路,以减少热插拔时的电源波动。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

12

帖子

0

粉丝