本文解决ARM MDK STM32 没有找到目标,目标没有连接的问题

系统环境
MDK5.36
STLINK/V2
CubeMX6.5

一、问题描述

确认stlink功能正常,序列号也可以正常识别到,成功烧写完一个新程序后,就会出现以上问题。

二、分析

我在cubemx中新建项目后忘记在系统模式中Debug选项选择serial wire,导致新编译的程序中并没有打开芯片SW-DP的接口。

因为还在flash中的上一个程序是正常开启调试线的,所以这就能解释为什么成功烧写完一个程序后就连接不上了。

我的这个问题是由于软件配置不当导致的,如果你不是这个问题的话也可以尝试以下解决方案。

三、解决方案

1.检查接线,供电,stlink是否能正常识别

在使用以下方法之前请先确保你的stlink是能正常识别的,如设备管理器内无stlink设备请安装驱动程序。

检查单片机与stlink的接线是否正确,连接是否稳定。

2.改变STM32的启动模式

我们知道STM32有三种启动模式,系统存储器启动(串口烧写程序)SRAM启动FLASH启动

当错误的把没有预留调试接口的程序烧写入Flash区中后,如果你的硬件Boot模式是从Flash启动的,那么你就会无法进行正常烧写。

此时可以通过更改硬件boot模式至系统存储器启动来正常使用串口线烧录程序,即Boot0接高电平,Boot1接低电平,将打开调试接口的程序烧入后即可正常使用stlink来进行调试和烧录

3.按住Reset按键烧录程序

如果不想那么麻烦切换启动模式,则可以在点击mdk下载按钮之前保持reset键按下,点击mdk下载按钮后立即松开reset按键。

此方法不一定百分百生效,仅推荐你在准备好正常程序后尝试烧入

文章作者:四文鱼Max

本文链接:https://blog.awolon.fun/archives/mdk-stm32-no-target-found-connected.html

许可协议:CC BY-SA 4.0

标签: arm, mdk, stm32

添加新评论