故障原因:

        这个问题真的挺狗的,先说结论,因为你买的ST-LINK V2是国产的,而且用的也是国产的芯片,不是ST的STM32F103C8T6,所以STM32CubeProgrammer识别不到芯片的串号,都是奸商为了省钱导致的。

解决办法:

        将单片机换成STM32F103C8T6,然后烧录ST-LINK V2 的Hex文件https://download.csdn.net/download/s2m0204/10662933,然后连接上STM32CubeProgrammer,更新一下固件就可以了。

讲讲事情经过:

        我是去年在网上随便买的一个ST-LINK V2,连着板子调试用的,KEIL直接下载,调试,一直没有问题的。有一天同事发了一个Hex文件给我,让我下载同步验证一下,然后我就用STM32CubeProgrammer,去下载这个HEX文件到单片机上,但是搞来搞去,就是连不上,串号只显示一个逗号,直接把我搞蒙了,如下图:

 我当时真的是一脸懵逼,然后就试着更新固件看看,

 更新完还是连不上板子,艹!然后问淘宝店的客服,客服说用 ST-LINK Utility才行,然后我试了一下,诶?果然有用,然后就一直用这个ST-LINK Utility去下载hex文件。

我记得中间有一次因为在外面没带ST-LINK,用DAP-link下载的HEX文件,还写了篇这个帖子:0.4-如何使用DAP LINK 下载Hex程序?

后来上面这个STLINK V2 无法用STM32CubeProgrammer下载程序的问题也被我忘了,上周我又买了一个ST-LINK 。我看到进口芯片其实挺诧异的,因为STLINK V2原图我看过,里面不就是一个STMf103C8T6的单片机吗?这不就是进口的吗?难道还有国产的STM32?

 拿到手之后,用STM32CubeProgrammer,试了一下,诶我草!这个宣称进口芯片的居然可以用STM32CubeProgrammer 下载程序,这就激起了我强烈的好奇心了,我倒要看看你用了什么魔法进口芯片,小样儿。于是乎,我把上次用不了ST-LINK的和刚买的ST-LINK都给拆了,如下图:

         绿色板子是上次用不了STM32CubeProgrammer的,图中我已经换好了MCU,旁边被打磨掉丝印的是他原来板子上的,不知道用的什么国产的单片机(叉出去~)。

下面这个紫色板子,就是宣称用了进口芯片的,可以用STM32CubeProgrammer的。

我将绿色板子单片机换完后。用https://download.csdn.net/download/s2m0204/10662933这个链接里面的HEX文件烧录到绿色板子里,然后就可以用STM32CubeProgrammer了,这真的打死我都不会想到原来是单片机的问题,真是不讲武德啊。

魔幻的原因终于找到了,就是因为你的STLINK 没有用STM32F103C8T6这个单片机,所以才导致的这个问题无法用STM32CubeProgrammer下载程序,我当时的心情用下面的图片展示一下。

查看原文