STM32F4xx那点事(一)——“No Target Connected”解决方法

        今天自己做的STM32F405RG的板子回来了,其实就是一个最小系统,只使用普通的IO口做测试,使用一部分I/O作为数据的输入,一部分I/O作为数据的输出。程序则使用自己前几天根据项目需要在MDK4.74上编写的,程序编译完成之后,没有错误,逻辑也正确。焊接好之后,将编译后的程序通过ST-Link V2 SWD模式下载到处理器中,第一次没有出现任何问题,只是在仿真的过程中出现如图1所示的提示。退出仿真之后,再也下载不进去程序,MDK4.74提示“No Target Connected!”,如图2所示。

       后经过多次询问度娘,游遍各个电子论坛,终于得到解决办法(解决办法此处打住,稍后再议)。根据前辈们的提示,了解到该问题产生的原因,即在程序中将SWD的SWDCLK管脚(PA13)和SWDDIO管脚(PA14)设置为输入管脚,而SWDIO管脚在双向I/O口状态下才能工作,所以出现无法检测到处理器的情况,更下载不了程序了。

        面对这种问题,我们该怎么办呢?根据网上的提示,并通过自己实际动手操作验证,解决这个问题的方法是:

       ① 查找出程序中设置PA13和PA14管脚的地方,将相关的配置程序删除;

       ② 连接ST-Link V2与开发板,按下开发板上的复位按键;

       ③ 打开Options for Target  对话框中的debug选项,使用ST-Link Debugger,点击setting按钮,查看是否连接上STM32F405处理器;

       ④ 点击确定,关闭Options for Target 对话框,点击“Start/Stop debug Session ”按钮,同时松开复位按钮;

        ⑤ 等待程序下载完成。


       另外,还需要注意的是ST-Link V2仅支持MDK4.6以上版本。

       各位看官,因水平有限,如有不妥之处,还请指正。