跳到主要内容

卡住时

按现象对号入座。多数问题出在路径、接线与「改了没生成」。

编译失败

可能原因怎么处理
找不到 arm-none-eabi-gcc检查 CubeCLT / 工具链是否在 PATH,VS Code cmake.environment 是否包含 bin
找不到 cmake / ninja同上,确认 cmake.cmakePath 与 generator
满屏宏/类型错误c_cpp_properties.jsondefines、include 是否与芯片一致
生成器缓存脏删掉 build/ 后重新 Configure

下载器连不上

可能原因怎么处理
未开 SWDCubeMX → SYS → Debug = Serial Wire,重新生成并先下一版能跑的固件
接线错误/虚焊重接 CLK/DIO/GND/3V3,共地必接
驱动重装 ST-Link 驱动;换线/换口
芯片被读保护或异常用 CubeProgrammer 看是否识别、是否需解除保护(谨慎)

下载成功但不闪 / 常亮

可能原因怎么处理
引脚不是 PC13以原理图为准,在 CubeMX 改脚并重新生成
高低电平与硬件相反交换 SET/RESET,或查低电平点亮
代码写在 USER CODE 外被覆盖逻辑移回 BEGIN/END,重新生成检查是否还在
下错 hex核对脚本路径与文件修改时间
Delay 太短看不清临时改为 200~500ms 观察

一改 CubeMX 逻辑就丢了

这是提示,不是 coinci­dence:业务写在了保护区外。
只在 USER CODE BEGIN/END 内添加代码;必要的全局变量、常量也放进对应的 USER CODE BEGIN PV 等区域。

仍然不行

把下面信息收齐再查或提问,比只说「不行了」有效得多:

  • 芯片完整型号、板子照片或原理图关键部分
  • CubeMX 版本、工具链版本
  • 完整编译错误日志
  • Programmer 连接日志
  • main.c 里闪灯相关片段(含 USER CODE 注释)

站内若走项目协作,也可用 如何提需求 的方式把现象与环境写清楚。