回复【楼主位】zhuosifan:
---------------------------------
原因我简单说下吧。
这问题一般是由于在程序上把SWD给关了,这个语句是: JTAG_Set(JTAG_SWD_DISABLE);这句话。
而这句话最常被调用是发生在KEY_Scan这个函数(其他地方也有可能调用)。所以,楼主的这个错误,一般发生在有调用KEY_Scan的例程里面。本来我已经加入了防止SWD连不上的处理,但是也不是万灵的。只能尽量保证可以连接。
而一般出现这个问题之后,最好的解决办法:把B0接V3.3。JTAG就可以连上了,此时不论SWD/JTAG模式,都是可以的。在下载完了之后把B0接回GND,按一下复位,运行的就是你下载的代码了。
为什么以上方法可行,就是因为B0接V3.3,使STM32进入了ISP模式,此时复位(JTAG连接的时候,会产生复位)后是不会运行芯片上的用户代码的。直接进入了ISP模式,此模式下,JTAG/SWD都可以连接芯片。所以,就可以解决上述问题了。
其实如果有按键的例子或者程序,插上JTAG,可能导致按键不准确,所以建议非必要,不要在有按键的代码上面使用JTAG调试。
楼主的问题解决办法2:用串口下载。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
直到看了以下說明 No Cortex-M SW Device Found 解决方法 http://www.mamicode.com/info-detail-318729.html
解决方法:
1 、第一种就是网上说的,BOOT0拉高,下载,再拉低。
2 、另外一种就是按住复位键,用jlink下载,等连接开始的时候放开复位键。下载成功!
我是用第二種方法 --> 簡單又快速的解決問題了
一周热门 更多>