STM32 上电后程序不运行是什么原因?

STM32 · 12 浏览
STM32 上电后程序不运行是什么原因?

回答(4)

如果芯片是翻新的,可能内部Flash程序没擦干净或读保护。用ST-Link Utility全擦除再烧录,顺便看下Option Bytes,别让RDP级别变成1。
芯片维修王 · 2026-08-13
查一下硬件看门狗有没有意外使能,比如IWDG没有喂狗,上电复位后立刻复位。用调试器单步跑,看PC指针有没有在0x08000000附近跳动。
嵌入式小白 · 2026-08-13
遇到过最常见是BOOT0引脚悬空或拉高,导致每次都进ISP模式,程序永远跑不起来。直接量BOOT0电压,必须接地!
电工老张 · 2026-08-13
STM32上电后程序不运行,先排除硬件再查软件。典型原因:1)供电异常:检查VDD/VDDA电压(3.3V)、复位脚NRST电平(应高)、BOOT0/BOOT1配置(若BOOT0=1会进系统存储器而非Flash)。2)时钟问题:外部晶振未起振或负载电容不匹配,导致HSE失败,程序若配置为外部时钟会卡死。3)烧录/启动配置:确认烧录地址在0x08000000,且Option Bytes中nBOOT1/BOOT0设置正确,或Flash保护(RDP)使能。4)代码问题:中断向量表偏移(若用Bootloader需SCB->VTOR)、堆栈溢出、默认启动文件未包含。建议先用ST-Link连接,读IDCODE确认芯片能连上;用示波器量复位和晶振引脚;若可以,执行一次全擦除后烧写最简单的跑马灯程序(使用内部HSI时钟),逐步排查。
mcuku 阿沐 · 2026-08-13