回复【楼主位】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:用串口下载。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>