STM32用串口下载后,不小心写保护和读保护了,如何解锁?

电子说

1.3w人已加入

描述

STM32用串口下载后,不小心写保护和读保护了,如何解锁?

在STM32的开发过程中,有些时候可能会不小心开启了写保护和读保护,这将导致程序无法正常使用。此时,需要解锁芯片以便重新烧写程序。本文将介绍如何在STM32中解锁写保护和读保护,并提供详实的步骤以供参考。

1. 测试板子

在开始解锁之前,需要测试板子是否在保护状态下。首先,连接板子到电脑,并打开开发环境。在开发环境的终端中输入命令:

``` bash
stm32flash /dev/tty.usbserialXXXX -Rs
```

如果板子上的芯片已经被保护,则会显示以下信息:

``` bash
Failed to init device.
```

如果芯片没有被保护,则会显示以下信息(具体数字可能会有所不同):

``` bash
Device ID: 0x414
Memory Size: 256KB
Pages: 128
Page Size: 2048B
Option Byte: 0xff
```

2. 准备J-Link软件

为了解锁STM32芯片,需要安装J-Link软件。首先,需要下载并安装J-Link软件包,然后将STM32的JTAG或SWD接口与J-link进行连接。连接后,启动J-Link软件,并按照以下步骤进行设置:

a. 选择Options > Project Settings

b. 选择Target、Interface和Device选项卡,并设置正确的芯片型号和调试器

c. 在Option选择卡上,选择Unlock option bytes选项

d. 点击OK并保存设置

3. 进行解锁

解锁STM32的步骤如下:

a. 连接J-Link调试器,并在J-Link软件中配置正确的芯片型号和调试器

b. 选择J-Link > Connect

c. 在J-Link软件中选择Target > disable readout protection

d. 等待解锁完成

4. 测试解锁状态

在解锁完成后,需要重新测试板子是否能够成功烧写程序。首先,断开J-Link调试器,并使用以下命令测试:

``` bash
stm32flash /dev/tty.usbserialXXXX -Rs
```

如果芯片已被解锁,则会显示板子的相关信息,如:

``` bash
Device ID: 0x414
Memory Size: 256KB
Pages: 128
Page Size: 2048B
Option Byte: 0xff
```

5. 确认解锁状态

为了确认芯片是否已经解锁,需要查看芯片的Option Byte值,其中0xAA代表未开启读保护,而任意其他值则代表开启了读保护。打开开发环境的终端,输入以下命令:

``` bash
stm32flash /dev/tty.usbserialXXXX -RW 0x1FFF7800:1
```

其中,dev/tty.usbserialXXXX为串口名称,根据实际情况进行修改。如果芯片未被锁定,则会返回Option Byte的值。

综上所述,解锁STM32芯片需要安装J-Link软件,并设置正确的芯片和调试器。然后,选择disable readout protection选项进行解锁。最后,通过测试和查看Option Byte值来确认解锁是否成功。若果您在进行解锁 STM32 的过程中遇到了任何问题,建议您参考资料或者联系相关的技术支持部门寻求帮助。
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_00411669 2023-11-06
0 回复 举报
开发环境的终端是在哪能指点一下吗?我使用的是Keil5 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分