OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2907|回复: 0

由于启动方式烧写不了程序,连接不了仿真器的解决方法:

[复制链接]

4

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
金钱
210
注册时间
2016-8-11
在线时间
65 小时
发表于 2017-3-1 17:42:00 | 显示全部楼层 |阅读模式
首先小弟不知道帖子里边有没有这样的帖子,或者说解决方法。但是这种方法确实好使,分享过的在分享一次也不对吧!谢谢理解!



不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式:
    ● 第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆!
    ● 第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。
    ● 第三种启动方式是STM32内嵌的SRAM启动。该模式用于调试。
在使用开发板时不小心下载了个有问题的程序,然后就悲剧了。无法往芯片中烧写程序了。每次想下载程序都会弹出如下的两个错误对话框:
J-Link和STM32 芯片都不大可能就这么坏掉了。多半是烧写进去的软件有些问题,占用了相应的IO 管腿,导致无法利用J-Link与之通讯。那就想办法不让这个错误的程序运行了。例如下述代码如果烧写进去的话就会造成J-Link下次不能正常连接:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
上述代码表示取消JTAG引脚功能,开始SWD引脚功能。
STM32 中是自带了BootLoader的,切换进BootLoader 中就可以了。具体的方法就是通过BOOT1、BOOT0两个跳线来选择启动模式。修改跳线将启动模式切换为上述的第二种方式:BOOT0=1,BOOT1=0。
断电,改跳线,重新上电,进入第二种方式:BOOT0=1,BOOT1=0,即STM32的BootLoader 模式。此时J-Link可以正常工作了,用J-Link 下载新的程序,下载成功。再断电,把跳线改回来第一种启动方式(BOOT0=0,BOOT1=0),重新上电,一切正常,问题解决。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 21:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表