Keil "st-link usb communication error" 解决方法
    今天碰到了“st-link usb communication error“的问题,在网上找了好多的资料,测试了好多的方法,最终才解决问题。在此贴出来,希望能够帮助到遇到同样问题的同学。

    首先,要感谢一下博主endless_fighting同学的文章http://blog.csdn.net/endless_fighting/article/details/52603998,这篇文章对我解决问题过程的帮助最大。如果你通过endless_fighting同学的文章,解决了你的问题,那么恭喜,你已经不需要在看我的这篇文章了。

    其次,说明一下Keil版本信息:Keil uVision V5.14.0.0  

    然后我再来说一下我的步骤。

下载
    下载st-link的老版本固件

    在此附上endless_fighting同学的链接:https://pan.baidu.com/s/1dHlgYwL 密码:6vwr

备份
    关闭keil软件,备份C:\Keil_v5\ARM\STLink文件夹(此处防止失败)

拷贝
    拷贝已下载的老版本固件到C:\Keil_v5\ARM\STLink文件夹中

固件升级
    点击ST-LinkUpgrade.exe,打开st-link upgrade软件进行固件升级

    插上st-link固件到电脑,点击Device Connect按钮,连接st-link固件,如下图   

   Keil_Keil

    

    若出现如下报错,则可尝试重新插拔st-link固件,或者换一个usb接口进行连接

    

    Keil_Keil _02

  

    连接成功,如下图,可以看到当前固件版本以及即将升级的版本,点击yes进行升级

    

    Keil_Keil _03

更新驱动
    已管理员身份运行C:\Keil_v5\ARM\STLink\USBDriver\stlink_winusb_install.bat文件,进行驱动更新

    

    Keil_Keil _04

  

    点击下一步,直至完成。

    至此,或许有人已经解决问题了,那么恭喜。但是,也有人和我一样,遇到了新的问题,就是打开我们自己已有的keil工程,发现无法进行st-link 的设置,点击如下setting按钮时,keil崩溃了。。。

    

Keil_Keil _05

    

    那么,就需要进行最后一步了。

修改工程
    关闭keil工程,找到你的项目目录,删除与项目同名的且以.uvoptx为后缀名的项目文件,再打开keil项目,你会发现,st-link可以设置了,程序不再崩溃。

    

    Keil_Keil _06

   

    最终,问题解决,st-link连接成功,可以识别stm32芯片
--------------------- 
作者:mofadianzi