STM32芯片配置错误SWD功能被占用时的下载方法.

最近在用STM32CubeMX配置STM32芯片,可以配置时钟,管脚,SPI串口等.免去了复杂的计算过程,不用记各种功能寄存器,相当的方便.用过的都说好,强烈推荐大家一试

但刀太锋利了用不熟练也容易误伤.在分配IO口功能的过程中,忘记了SWD的口线的事情,把SWD口给占用了.生成代码下进开发板后无法再下程序了.

弹出对话框提示 No Cortex-M SW Device Found.

状态栏提示:

* JLink Info: STM32 (connect): Can not attach to CPU. Trying connect under reset.
* JLink Info: STM32 (connect): Can not attach to CPU. Trying connect under reset.
***JLink Error: STM32: Connecting to CPU via connect under reset failed.
Error: Flash Download failed  -  Target DLL has been cancelled
Flash Load finished at 10:35:27

上网查询后找到解决方法,BOOT0接高电平,可以把BOOT0短接到VCC,然后按Reset按钮或者短接NRST对地短接一下.然后就可以用SWD正常下载正确程序了.stm32cubemx更改配置重新生成代码后别忘了在KEIL中重新编译.

stm32cubemx中的debug选项默认不管是可以下载的,但如果将相应口线配置成其他功能,将无法使用调试功能,建议在配置的时候选择为 serial wire,并配置SWD口线,避免以后疏忽大意挪作他用.

BOOT0接高电平,BOOT1接低电平状态下复位芯片,可以从系统存储器启动BootLoader将程序下载到系统的Flash中。程序下载完成后,需要将BOOT0设置为低电平,手动复位芯片,这样STM32才可以从Flash中正常启动.

 (1) 用户闪存 : 正常的工作模式。STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

(2)SRAM:    芯片内置的RAM区, 就是内存,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。

(3)系统存储器: 系统存储器是芯片内部一块特定的区域,STM32厂家在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块只读ROM存储器,出厂后无法修改。选用这种模式启动,可以从串口下载程序,因为厂家提供的BootLoader提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。

 

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值