文章目录
三、Not a genuine ST Device! Abort connection
四、Flash Download failed - "Cortex-M3"
一、No ST-LINK detected
原因分析:
电脑没有检测到stlink设备,一般是stlink或者电脑端口的问题。
解决方法:
1、确保stlink已经插在电脑USB口,然后打开电脑的设备管理器界面,看看“通用串行总线设备”列表是否出现“STM32 STLink”设备。
如果没找到stlink设备,可以重新拔插一下stlink,同时观察设备管理器列表有没有刷新,如果列表有刷新,请仔细查找刷新后有变动的地方;如果没有刷新,可能是stlink损坏或者电脑USB口损坏。
2、找到列表刷新后对应的stlink设备,如果出现在“其他设备”列表,并且图标带有黄色感叹号,则表示没有安装stlink驱动,重新安装驱动,安装结束后拔插stlink,等设备出现在即可“通用串行总线设备”列表并无感叹号即可。stlink驱动下载链接 提取码:74ok
3、如果插上stlink后,设备管理器识别到的是“未知USB设备(设备描述符请求失败)”,一般就是stlink损坏。
二、No target connected
原因分析:
stlink没有检测到stm32,这个问题的原因比较多,可能是接线错误、stlink固件版本不对、也可能是stm32禁用了调试端口或者stm32已经损坏等等,需要自行逐个排除。
解决方法:
1、检查接线。不同款式的stlink引脚排列可能会不一样,按照引脚丝印仔细检查接线,在stlink的正面都会有引脚标识,对应引脚名称接线即可。接线时需要交叉,并不是依次顺序的。stlink有两排引脚,一般是接在远离缺口的那一排,也就是下面这一排,一定要确保连接正确。
ps:也可以尝试把stm32的3V3和GND引脚接在stlink第一排上的3.3V和GND上。另外,接线接触不良也会导致这个问题,可以换几根线试一下。
STM32 | ST-LINK |
SWCLK / DCLK | SWCLK |
SWIO / DIO | SWDIO |
3V3 | 3.3V |
GND | GND |
2、更新stlink固件。固件版本过低也会导致出现这个错误,固件更新操作步骤如下:
①打开Keil软件的安装目录,如果不清楚安装目录,可以在桌面keil软件图标右键,打开文件所在的位置,找到安装目录;
②右键跳转到安装目录后,退回上一级文件夹,然后依次打开ARM,STLink文件夹,找到ST-LinkUpgrade.exe文件并打开;
③将stlink插到电脑USB口,如果已经插上了,则需要重新拔插一下,并且最好把stlink的线也全都拔掉。然后先点击Device Connect 按钮连接设备,连接成功后,再点击右下角Yes 按钮更新固件;
④固件更新成功后,再次重新拔插stlink即可。
3、解锁调试端口。如果是stm32禁用了调试端口,可以按住复位键不松手,然后点击下载按钮,点完下载按钮后要及时松开复位键。
4、使用串口(USB转TTL)烧录程序。
烧录教程可参考:如何使用串口(USB转TTL)下载stm32单片机
如果以上方法都无法解决,那大概率是stm32已经损坏,当然也无法直接排除stlink损坏的可能。
三、Not a genuine ST Device! Abort connection
原因分析:
识别到不是正版ST设备。
解决方法:
点击魔术棒→“Debug”→“Settings”;
打开“Pack”页面,将“Enable”选项取消选择,然后确定,OK,重新下载即可。
四、Flash Download failed - "Cortex-M3"
原因分析:
配置问题,stm32的Flash型号没有添加或者没选对。
解决方法:
点击魔术棒→“Debug”→“Settings”→“Flash Download”,点击下边的“Add”按钮添加对应的flash型号,如果是stm32f103c8t6芯片,就可以如图选择,其他型号的就需另外选择,添加好后点确定,OK,然后重新下载即可。