Keil5烧录报错Connection refused due to device mismatch的玄学问题

之前上课的时候,老师要求把指定的固件刷到开发版里面,但奇怪的是,有的板子可以刷入,有的不行,有的电脑可以,有的却不行。按理说工程文件、STLink驱动、开发版都是一样的,不应该存在这种问题才对。于是Google了一轮,记录一下。

报错信息

image-20240418205822581

image-20240418205833767

双连报错,很明显:

  • 芯片不对
  • 程序下载错误

芯片不对?

不可能,工程文件是开发版厂家提供的,板子上的芯片也确实是STM32F103RCT6,这和Keil上是一一对应的,应该不存在芯片不对的问题。

![result (5)(1)](Keil5烧录报错Connection refused due to device mismatch/result (5)(1).jpg)

但错误信息都无限制的指向这一个问题——芯片错误,这就奇了怪了

芯片问题??????

根据论坛大佬和群友提供的信息,STLINK烧录的时候,首先需要和芯片建立连接,而校验芯片是否正确,则是用IDCODE进行校验。

STM32F103系列的IDCODE是0x1B10477,而我手上的是0x2BA01477,换句话说,我手上的这个芯片是仿制的,并非原版的

image-20240418213335664

但是参考大佬的文章keil5 报错 Connection refused due to device mismatch! 的原因以及解决办法-CSDN博客是把CS的pack包替换一下就行了,但我这里pack并不安装的上,这就比较玄学了

问题解决

最后发现,直接在Debug Description中,取消勾选ENABLE使能就能顺利写入了,之前为了CS的pack包折腾了很久都装不上,本以为是无解的问题,取消ENABLE就解决了(gg

个人估计可能还是玄学问题?或者是下载器的问题?但是我换了下载器后仍然下载不进。但按理说这个板子是学校统一采购的,应该不会使用仿制芯片才对,但是另一块ST官方的学习板又确实能把这个工程文件写进去,emmm,总之挺玄学的。

至少上课的时候是能写入工程文件了,就是还没试过DEBUG,不知道怎么样

image-20240418214042902