zoukankan      html  css  js  c++  java
  • STM32 SWD下载口无法下载的原因和解决办法

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

    2.芯片被锁,原因有可能是程序执行了不正确的访问导致芯片被锁

    3.供电不正常

    4.SWD烧了

     

     解锁原因:

    在下载程序的时候有时候会发生错误导致内核停止工作,这就意味着内核被锁,这时候已经无法把程序下载进去了。


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

    除非使能了读保护,不然一般不会锁死的。--来自网贴评论

    解锁的方法:

     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:KeilARMSegger里面替换原来文件,下载的文件的网页截图如下:

     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

  • 相关阅读:
    sql交集、差集、并集
    控件自适应文本宽度
    pivot列行转换,自动计算分组,解决groupby问题
    echart-scatter使用散点图,带坐标和项目名称
    下载文件根据浏览器判断文件名,解决兼容性问题
    sql中类型转换涉及的性能差异之convert和cast
    js使用正则表达式对文本框进行限制输入
    Aspose.Words.dll根据模板生成word详解
    Windows服务开发
    SqlBulkCopy学习(导入海量数据的类)
  • 原文地址:https://www.cnblogs.com/qdrs/p/10574867.html
Copyright © 2011-2022 走看看