这两个错误是相连的,一体的 前一个问题connection refused due to device mismatch 的解决办法是,打开设置配置-》debug-》setting-》PACK选项为关闭ENABLE选项 (注:如果没有PACK这个选项,那就是你的keil版本太低了,不过没关系,因为他的默认是DISABLE的) 完成对钱一个问题的解决又出现了下面这个问题:invalid rom table 有些博主说要去芯片链接那看看你的芯片id,分辨是不是盗版芯片,这个说法是错误的!!!!!!!!!!!!!!!!!!!!!! 这只是因为你的下载速度太快或者没有设置成sram起动,下面我提供3个方法解决 1.把速度调成0.5M降低下载速度 2.调成SRAM下载模式 把BOOT0 BOOT1 都调成链接1高电平 3.重新擦出flash 错误原因: 时钟不匹配导致 啥意思呢 就是你的程序里面写的是25M的外置晶振 但是 板载确实8M晶振 使得芯片与程序冲突 这个就简单了 改了程序和板子对应就好了 通过 把BOOT0置1,BOOT1置0,keil配置修改一下:进入Debug–Settings–Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉,然后按复位键,再点击下载,下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。目的就是一开始让芯片进入bootloader程序,此时就可以进行下载程序了。如果没有复位按键,那么就可以先将BOOT0接入高电平(默认BOOT0,BOOT1一般是通过电阻接低电平的,所以此时只需将BOOT0引出接入高电平),然后上电(相当于复位了),最后点击下载,当程序正在下载时就可以不接高电平了。 我举手说明一下 我的程序和板子是一致的 so 我的原因不在这里 若是这个问题导致的 就按照上面的步骤来就好了