STM32 SWD下载口没法下载的缘由和解决办法

1.SWD的下载口在程序中被禁用,IO口被设置为普通IO口html

 

2.芯片被锁,缘由有多是程序执行了不正确的访问致使芯片被锁工具

 

3.供电不正常加密

 

4.SWD烧了spa

 

 

 

 解锁缘由:.net

在下载程序的时候有时候会发生错误致使内核中止工做,这就意味着内核被锁,这时候已经没法把程序下载进去了。debug


解决的办法就是用ISP方式下载程序进去冲刷一遍,而后就好用了。3d

除非使能了读保护,否则通常不会锁死的。--来自网贴评论htm

 

解锁的方法:blog

 A. 用JLINK连接,把板子的的BOOT0置高,此时就已经能够识别芯片了,芯片解锁,而后将BOOT0拉低就能够,既识别芯片又能够正常仿真了接口

 B.用ISP模式,经UART串口全片删除。

   C.用rlink擦除下就好

 D.SEGGER 的JLink ARM V4.08l包中的,Processor Specific Utilities->J-Link STM32 Unlock 工具就能够解锁

 E.https://blog.csdn.net/gmq_syy/article/details/82624755

    F.https://www.cnblogs.com/eva0/p/6222257.html

  短路复位电容,点下载,稍等几秒(这个靠感受喽),断开短路的电容,OK!大功告成!

  这是由于复位的时候,禁止JTAG的寄存器也是复位状态,因此JTAG就自动启动,未被禁止。

 

 

 

 

网上搜集到的帖子:

帖子1:

 

原帖地址:

http://openedv.com/thread-86241-1-1.html

摘录内容:

提问:

你们好,
我使用STM32F100R8的芯片,采用SWD(4线)链接方式.发现SWD连不上STM32.
请你们分析一下,主要有哪些缘由?
1,若是不焊接晶振会不会影响jlink链接STM32?
2,BOOT0引脚串电子接到地了,若是没有正确设置BOOT0 和BOOT1 会有影响这个吗?
3,怎么才能硬件上判断当前的STM32芯片仍是好的啊?
4,我使用jlink加转接板在用4P排线接到板子上,排线长短会有影响吗?
5我SWDIO和SWCLK分别结论上啦和下拉电阻,这个应该吗?

 

答复:

1. 默认用内部RC的,没有晶振不影响SWD,但若是程序用到,会有影响。STM32的SWD要求AVDD必须有电,若是是本身作的板子,建议好好对对,最好找老司机带带路。

2. 若是程序里面没有关SWD,或配置字没有关SWD,BOOT接0不影响。
若是程序里面有关了SWD,那把BOOT接1会容易链接上SWD。
若是是熔丝里面关了SWD,那只能解锁,最高级加密没法解锁,只能报废。
3.
4. 保证线的质量,尽可能缩短长度,并尝试下降速度。
但命令都不显示内核,那得归为错误了。
5. 不影响,只要电阻另过小,几K到几十K均可以。

 

 

 

改造JLINK接口的方法:

http://www.stmcu.org.cn/module/forum/thread-598871-1-1.html

 

 

 扩展内容:

 

关于设置下载速度:

这个的话,建议点开debug-再点开setting-看到debug-jtag cmd,查看target interface speed,记下这个速度,关掉cmd,而后修改debug上的速度一致就好了

 

 

 

若是是JLINK能找到芯片可是KEIL找不到请下载补丁:

我用的单片机就没有jtag接口,只留了4线的SW接口。 
不过问题解决了,是MDK4.6对CM0+的内核支持不完善,在segger的官网下了个补丁,替换了一下就行了。 
http://www.segger.com/IDE_Integration_Keil.html#knownproblems

 

我被本身蠢哭了,不过终于解决了,真的是好贴啊,谢谢水煮鱼。。。我补充一下,下载仍是点开水煮鱼给的地址,而后下载dll文件,放在D:\Keil\ARM\Segger里面替换原来文件,下载的文件的网页截图以下:

 

 

 STM32对JTAG口的默认配置

https://blog.csdn.net/qq_26093511/article/details/56666320

 

仿真进不去的缘由:

https://blog.csdn.net/fxltsbl007/article/details/52511687/

 

 

flymcu串口下载:

http://bookshiyi.com/archives/1258

 

扩展8:

若是出现读取的id和工程设置的芯片id不符合的状况,多半是jlink自己有问题,固件与驱动不符,致使的读取数据错误;能够尝试更换低版本的驱动,有时候最新的不必定是最合适的。

https://blog.csdn.net/xuezhimeng2010/article/details/78771030

 扩展9:

https://blog.csdn.net/DZRYWYBL/article/details/84704905

相关文章
相关标签/搜索