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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:03   2040   0

最近在用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中。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP