HardFault_Handler:程序跑飞进入 HardFault
STM32 常见问题 · 排查从第 L3 层开始
日志里常见的字样
HardFault_HandlerHard Fault进入 硬件错误这条报错说明什么
CPU 执行了非法操作。常见原因:数组越界、空指针、栈溢出、访问没开时钟的外设。
先做这一步
调试时在 HardFault_Handler 打断点,查看调用栈和 SCB->CFSR 寄存器;把启动文件里的 Stack_Size 从 0x400 加大到 0x800 再试;检查最近加的大局部数组。
按顺序排查,别跳步
- L0供电:核对供电与指示灯
- L1连接:确认 USB、驱动与端口
- L2烧录:检查模式、工具与配置
- L3最小程序:建立独立运行基线
断开外设,运行与板型匹配的 LED 或串口最小程序。 - L4串口:确认运行日志
- L5外设:逐个验证接线和通信
STM32 Blue Pill 的注意事项
- 具体 GPIO 耐压请按数据手册核对,不能把全板当作 5V 耐受。
- PC13 LED 通常为低电平点亮。
- PA13 / PA14 是 SWD 调试接口。
- 代码模板提供标准库(Keil)、HAL 库(CubeMX / CubeIDE / Keil)和 STM32duino 三种;串口输出固定用 USART1(PA9 TX),需要 USB 转串口模块。
- 下载用 ST-Link(SWD)或 USB 转串口 + BOOT0=1;网页烧录暂不支持 STM32。
相关问题
板伴 Boardly · 给硬件初学者的免费排错工具。内容依据公开资料整理,尚未逐条经过实物验证,请以实际测量为准。