根据自己使用和其他工程师情况总结。
开发环境:MDK5.26
本来一直都很正常,突然就冒出这个问题
系统:WIN10/WIN7
供电:板子一定要供电!
确保ST-LINK跟板子连接完好
按住reset点击download
硬件和接线都没问题情况下,这时候可能是SWD的引脚被占用了,或者被禁用了。
这时候ST-LINK自然无法通过SWD跟板子通信,所以才会提示No Target connected。
所以,这时候按住reset,再点击download,再松开reset。原理就是在程序运行到SWD引脚占用之前,把新的程序烧录进去,抢个时间差。但是这招不是每次都管用,有概率性失败。
但是不要紧,我们还有第四招
boot0 接高电平download正常程序后,再接回低电平,即可烧录
boot0接高电平时,程序是跑得系统存储器或者内置SRAM中的程序,这时候不跑主闪存存储器的程序,SWD没有占用,ST-LINK也通信正常,烧录一个正常的程序后,再把boot0 接回低电平,就可以再烧录程序了。
显示“NO target connected“ 但是驱动没有问题,在设备管理器中显示出有stlink
原因是配置了GPIOA的 14 13这两个口了
”GPIOA_MODER复位后的值为:0x2800 0000,即将GPIO13\14配置为复用模式,但为什么在程序配置了GPIO13\14为输出,并且在目标芯片有复位的情况下也会引起SWD无法仿真、下载的问题。”
解决办法:
1、先确认目标板上电。
2、先长按住目标板上的复位键,再点击 Settings,再松开目标板上的复位键。
3、此时KEIL打开Settings的设置对话框,请确认有SWD的内容后,再进行下一步。
4、将STM32F41Discovery板断电,重新上电。
5、先长按STM32F4Discovery的复位键,再点击仿真或者下载按钮,再松开复位键。
注:这里点仿真到松开复位键不是每一次都能成功,每次点了仿真键到松开复位键的时间每次都不同,在某一个点时,就可以进入仿真或者下载程序了。板子就恢复正常了。但需要注意的是,在程序里一定要避开对GPIO13\GPIO14的配置。
注意:松开复位键 需要感觉的 太短或者太长都不可以的 。需要多次试验才能够成功。
——---------------------------------------------------------------------------------------------------
第一步:检测驱动是否安装正确,如下图正确
第二步:确认调试器选择正确,如下图所示
第三步:确认下图1,2,3处设置正确,出现此问题的主要原因是2处要选为“under Reset”选项,默认“Normal”选项设置,导致了“no target connected”下载程序错误。
参考:
问题总结:
PA13与PA14被当作普通IO口STlink无法识别stm32芯片时,可通过以下方法解决
https://blog.csdn.net/YPJ0123/article/details/79774178
https://blog.csdn.net/yanghonker/article/details/17042643
STM32CubeMX使用JLINK调试问题
默认情况下STM32CubeMX是没有打开Debug功能的,需要在pinout中找到 SYS设置 Debug模式
https://blog.csdn.net/yimisiyang/article/details/80030966