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