首页 > 编程语言 >【STM32】使用Keil5加载程序时出现No Target Connected错误的解决办法

【STM32】使用Keil5加载程序时出现No Target Connected错误的解决办法

时间:2024-03-01 12:35:11浏览次数:23  
标签:HAL Target No void MspInit STM32 USER 调试器

错误情况

加载程序时弹出No target connected的Error框,随后弹出Flash download failed - Target DLL has been cancelled。

此时打开设置中Debug选项的Setting窗口,显示SWDIO中No target connected

解决办法

  1. 检查设置里的Debug选项里的调试器型号有没有选对,如下图所示,我用的是ST-Link的调试器。

  1. 检查调试器设备连线有没有损坏或者接触不良。

  2. 在别人的设备上调试观察确定是否为硬件问题。

  3. 以上都没问题,可能是某个调试相关的引脚被禁用,需要按住开发板上的Reset按钮不放,在点击LOAD键后约1秒左右的时间松开Reset键,观察程序是否成功加载。如果出现了internal command error的弹窗,可能是Reset键在LOAD键点击前松开了或松开太快,可多尝试几次。

恢复正常后在设置的Debug的调试器Setting界面中,SWDIO应正常显示连接的设备,如图即解决

后续——问题出现原因

后面研究了一下,明白了为何会这样,因为笔者运行了一个含有stm32f1xx_hal_msp.c库函数的程序,这个库函数中的void HAL_MspInit(void)会关闭SWJ功能。如下所示

void HAL_MspInit(void)
{
  /* USER CODE BEGIN MspInit 0 */

  /* USER CODE END MspInit 0 */

  __HAL_RCC_AFIO_CLK_ENABLE();
  __HAL_RCC_PWR_CLK_ENABLE();

  /* System interrupt init*/

  /** DISABLE: JTAG-DP Disabled and SW-DP Disabled
  */
  __HAL_AFIO_REMAP_SWJ_DISABLE();	//就是这一行关闭了调试功能

  /* USER CODE BEGIN MspInit 1 */

  /* USER CODE END MspInit 1 */
}

有个帖子遇到了和我一样的问题,里面的介绍和解决方案更加详细,感兴趣的朋友可以看看:点击进入指路链接

标签:HAL,Target,No,void,MspInit,STM32,USER,调试器
From: https://www.cnblogs.com/ExploreTheEmbeddedUniverse/p/18046706

相关文章

  • centos7安装node18.16.1
    centos7安装node18.16.1参考文档https://www.cnblogs.com/dingshaohua/p/17103654.html详细文档[root@172~]#npm-vnode:/lib64/libm.so.6:version`GLIBC_2.27'notfound(requiredbynode)node:/lib64/libc.so.6:version`GLIBC_2.25'notfound(requ......
  • NOI Linux 2.0 使用笔记
    \[\Huge\text{NOILinux2.0使用笔记}\](未完成)下面用xxx、yyy等表示文件名或文件夹名(不含.cpp后缀)。命令基础命令ls:列出当前文件夹内的东西。cdxxx:进入名为xxx的子文件夹。返回到上一级文件夹用cd..。【重要】编译命令终端里打开代码所在的文件夹,......
  • Rainypaster's Daily Notebook
    写在前面记录一天生活,防颓废。因为学校要求,被迫开工,众所周知,一篇文章应该放一个头图吧。有任何问题请联系本人微信公众号:yexc的编程成长日记,大部分时候cnblogs不在线。记录2-29摘要:今天是2.29号的疯狂星期四!下一次要28年后啦~!||英语爆炸啥也不说了,上图。《小蓝本......
  • P1083 [NOIP2012 提高组] 借教室
    题目链接:本题由于是对某一段区间的数统一进行删除某个数的操作,很容易想到差分。对于能否二分,有一个界定标准:状态的决策过程或者序列是否满足单调性或者可以局部舍弃性。在本题中,由于随着订单数量的增加,每天可用教室的数量一定单调下降。也即,如果前一份订单都不满足,那么之后的所......
  • NOI 嘉年华
    看这篇题解对这篇题解做一些解释首先看到这道题目,时间范围很大,所以我们先考虑如何对区间进行排序,但是你会发现无论是按照左端点排序还是按照右端点排序,都很难DP下去,所以我们只能对时间排序,然而时间非常大,要对时间进行排序,就必须要离散化(这里启发我们,不要太固定思维觉得大的时间......
  • MutationObserver监听DOM结构变化
    前面有IntersectionObserver观察器实现页面懒加载的功能,原理就是观察dom是否进入视口。那么如果不管是否可见或者要实现随时监听,则需要使用MutationObserver。示例代码:1filterObserve:function(_id){2if($("#"+_id+"formt-form-item").length<5)returnnull......
  • Qt 多线程中使用QTimer和信号、槽 QObject::startTimer: Timers cannot be started fr
    多线程中使用QTimer我们可能在Qt的多线程中使用QTimer中都会遇到一个错误:Cannotcreatechildrenforaparentthatisinadifferentthread.或者QObject::startTimer:TimerscannotbestartedfromanotherthreadQTimer定时器不能在不同的线程中启动。出现这个主要原因......
  • Qt Cannot open include file: 'QtConcurrent': No such file or directory
    假期手痒用Qt写了个便笺程序,其中文件操作用到了QtConcurrent模块。噼里啪啦,一通猛如虎的操作下来,代码写完了,愉快地build+run一套,结果报错了:(Cannotopenincludefile:'QtConcurrent':Nosuchfileordirectory编译不过一声吼,操起鼠标查google。官方文档就是这么写的看......
  • zookeeper的znode节点过多无法通过zkCli.sh移除节点
    背景描述:zookeeper的一个目录下的znode节点过多,导致在执行ls和rmr命令的时候,直接终止会话退出,无法递归删除下面的子节点,具体情况如下(生产环境的zookeeper是clickhouse的元数据管理集群,有一个故障是clickhouse副本同步堆积问题),接下来的操作需要知道这个子节点中的znode有序节点是......
  • Go 100 mistakes - #82: Not categorizing tests
         ......