0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

工程师邓生 来源:未知 作者:刘芹 2023-10-29 17:24 次阅读

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 的过程中遇到了任何问题,建议您参考资料或者联系相关的威廉希尔官方网站 支持部门寻求帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 调试器
    +关注

    关注

    1

    文章

    303

    浏览量

    23718
  • STM32芯片
    +关注

    关注

    0

    文章

    38

    浏览量

    4376
  • stm32串口
    +关注

    关注

    0

    文章

    6

    浏览量

    2017
收藏 人收藏

    评论

    相关推荐

    不小心EVM GUI刷错了固件,连接不上LDC1612怎么解决?

    电磁感应设计用到的LDC1612,但是我不小心EVM GUI刷错了固件,虽然电脑端口可以识别,但是连接不上LDC。连接的时候 亮几下红灯就没反应。现在用EVM固件也刷不进去了,
    发表于 12-16 08:33

    bq25504元件不小心把电压接反了,应该如何维修?

    如标题,刚买没多久的bq25504元件不小心把电压接反了,应该如何维修 各位大佬哪位懂得请告知,感激不尽~~
    发表于 08-20 07:21

    如何在Micro SD卡上设置写保护

    我们了解客户对Micro SD卡写保护的疑问。在这篇文章中,拓优星辰将详细解释如何在Micro SD卡上设置写保护,以及相关的步骤和注意事项。
    的头像 发表于 07-11 16:37 1759次阅读
    如何在Micro SD卡上设置<b class='flag-5'>写保护</b>?

    验证flash加密功能时不小心将FLASH_CRYPT_CNT字段设置成写保护,如何取消写保护

    验证flash加密功能时不小心将FLASH_CRYPT_CNT字段设置成写保护,导致现在无法关闭flash加密。请问有什么方法取消写保护
    发表于 06-13 07:23

    BLUENRG-LP开启保护的问题求解

    表示已经开启保护。 但是保护开启,芯片RESET,再次拉高PA10 进入BOOTLOADER,串口
    发表于 05-29 06:20

    STM32G0如果只执行写保护编程时,先擦除选项字节,此时保护字节是FF,那是不是就读保护生效

    如果只执行写保护编程时,先擦除选项字节,此时保护字节是FF,那是不是就读保护生效?程序再修改为A5,会不会就引起FLASH整块擦除?不想
    发表于 05-20 08:17

    求助,关于STM32F302_FLASH保护的问题求解

    查看好些STM32F302资料,想通过FLASH保护来实现加密功能,添加以下代码,没能实现预期功能: #define OB_RDP_Level_0((uint8_t)0xAA)
    发表于 05-08 06:26

    请问STM32进入睡眠模式怎么下载程序?

    今天做低功耗实验,不小心把唤醒的代码屏蔽,板子开机1秒左右就进入深度睡眠,这下下载不了程序
    发表于 04-24 08:00

    不小心把SWIM引脚设置成了out,结果修改的程序怎么也下载不下去了,芯片是不是报废了?

    犯了个低级错误,不小心把SWIM引脚设置成了out,结果修改的程序怎么也下载不下去了,STVP还是内嵌的programmer均显示连接设备。不知道是不是有其他方法?还是这块芯片就报废了呢?
    发表于 04-22 07:24

    STM32F446读写保护意外打开的原因?

    程序第一次上电会判断保护是否打开,如果没打开保护则设置保护,以此来
    发表于 04-19 07:43

    不小心把板载STLINK的单片机程序给擦出了,导致现在USB连接无法识别,怎么解决?

    不小心把板载STLINK的单片机程序给擦出了,导致现在USB连接无法识别,哪里可以提供程序让我重新下载?非常感谢!!
    发表于 04-19 06:44

    STM32F0设置FALSH写保护不能下载程序是什么原因导致的?

    开发环境KEIL5+JLINK进行程序调试,STM32F0根据选项字节进行FALSH写保护,下次不能再程序下载
    发表于 04-18 07:51

    STM32串口下载方式(ISP)的写保护位编程错误的原因?

    正常使用STM32系列MCU的PCBA,都会在生产中将代码编程进去,并且设置必要的读写保护,不设置保护状态直接出厂的,应该没有这种情况吧?我在通过ISP功能进行编程,读写保护设置时,发
    发表于 04-09 06:39

    STM32F407保护无法解锁何解决?

    项目中用到STM32F407,程序烧录,开始运行正常,后面出现芯片死机不运行的情况,Jlink重新烧录程序提示保护。 网上搜索方法,STlink工具,STLNK Utility
    发表于 03-25 08:09

    JLINK下载程序点了secure chip之后,如何解锁芯片的保护状态?

    如果JLINK下载程序,不小心点了一下secure chip之后,芯片就处于保护状态下,不能连接到JLINK,也不能用jlink下载程序,
    发表于 01-11 07:24