现象
使用ST-LINK V2 + STM32 ST-LINK Utility 往 STM32F051 下载程序,出现 “ST-LINK USB communication error”,记录解决过程如下:
过程
拔插 ST-LINK V2,现象依旧。
将 STM32 复位,复位后立即点击 STM32 ST-LINK Utility 中的 Target/Connect 即可通讯。
通讯后一旦运行了下载的程序,又不能通讯。仍出现 “ST-LINK USB communication error” 提示。
通讯后将 STM32 擦除成空片,通讯正常。
因而怀疑编写的程序有问题,采用逐段注释之法,几乎只剩 STM32CubeMX 构建的框架,现象仍在。
说明在 STM32CubeMX 配置时就有问题了。
错误
重新检查 STM32CubeMX 配置 ,发现 PA13…14 作为无用引脚配置成了 GPIO_Analog,而实际上要连接 ST-LINK V2。
改正
在 STM32CubeMX 工程,在引脚图中将 PA13 设为 SYS_SWDIO , PA14 设为SYS_SWCLK。遂 STM32CubeMX 自动勾选 Pinout/SYS/Debug Serial Wire。
用 STM32CubeMX 重新产生(配置)代码、用工具链 编译、对 STM32 编程后,故障消除。