使用keil开发STM32点下载时出现下面的报错:

点确定后:

出现如上情况很可能是该芯片锁死,即设置了读写保护。
解决方法是想办法解锁芯片,可以使用ST-Link配合stlink utility软件,或者使用J-link,或者用一个自动取消读写保护位的程序在SRAM区运行一下(读写保护只影响 FLASH, SRAM调试时程序下载到 SRAM 中,不受影响) 。当然其实上面的方法原理都是一样,下面就使用ST-Link配合stlink utility软件解锁芯片的方法阐述一下。

stlink utility是ST官方提供的免费软件,支持STM32 ST-LINK的程序包括带有命令行界面(CLI)的图形用户界面(GUI)。该软件可自行到ST官网搜索下载最新版。

进入stlink utility软件后,Target->Connect显示不能读到flash,这也进一步证明这个芯片被设置了读报护。如果到这一步依然与图片现象一致,那么请继续往下跟着操作。

选择Target->Option Bytes

读到配置字节发现读报护果然被使能了:

将Read Out Protection选项设置位disable,点击Apply,这时候Flash已经成功解锁了:

解锁成功后ST-LINK上位机软件会自动连接芯片,这时发现flash已经全部被擦除了(因为flash读出来都是0xFFFFFFFF),这就是芯片的保护机制,主要防止一些想不劳而获的人通过调试器窃取芯片内的软件。

至此,芯片已经可以正常烧录了。


补充一点:

有些芯片比如L0系列的,Read Out Protection选项读出来是Level 0或是 Level 1
STM32 读保护有三个等级 L0 L1 L2
L0 是没有保护,可以随意读出来的,一般调试过程中选择。在L0 状态可以设置成L1 或者L2,修改完成不会擦除芯片已有的代码;
L1 是可恢复读保护,L1–>L0状态,,会自动擦除已有的程序。L1->L2,这个设置还没有试过,(正常理解是不擦除);
L2 是不可恢复读保护,此状态下,不可恢复到其他的状态,同时芯片里的程序不能再升级 类似OTP了;
这个主要是保护代码不会被其他人恶意拷贝,保护原作者的权益。

如果是这种。解锁的时候把Level 1切换到Level 0就行了。
这里注意。自己调试时不要设到Level 2去了,这样芯片就再也不能烧录新程序了。


再补充一点:
如果按上面的方法解锁了之后,再用KEIL下载还是反复报下面的错误:

换ST-link utility烧录时报下面的错误:

这个原因是上述方法没有解锁全部的Flash,还有一部分Flash没有解锁。是因为前几页flash单独设置了读报护,需要单独解锁。

选择Target->Option Bytes

发现如上图所示前4页flash被写保护,所以需要将其全部解锁才能下载。
(该部分写保护主要是为了Bootloader被破坏)


点击Unselect all,再点击Apply即可解除所有的读报护了。

MDK KEIL 烧录STM32下载错误:Flash Timeout.Reset the Target and try it again.解决办法(芯片解锁 解除读报护)相关推荐

  1. [Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”

    1.首先检查是否为BOOT0,BOOT1选择导致的下载方式错误. 2.最有可能的原因是STM32芯片读写保护,导致程序烧录失败. 第二种解决办法如下: 使用ST-Link Utility去除STM32 ...

  2. STM32下载出错:flash timeout.reset the target and try it again

    STM32下载出错:flash timeout.reset the target and try it again 1.出错提示 2.解决方法 下载连接 1.出错提示 编译环境:Keil5 下载器:高 ...

  3. Flash Timeout.Reset the Target and try it again 报错解决方案 STM32 ST-LINK Utility下载程序操作

    在移植程序时同时遇到下列两个报错问题,配置好Flash和检查烧录器无误外还是解决不了,这时下载STM32 ST-LINK Utility 软件借助其烧录功能最终解决该问题. 打开软件后基本操作如下: ...

  4. keil软件STM32下载错误:Overlapping of Algorithms at Address 08000000H错误

    使用keil软件编译程序,单片机是STM32F767IGT,没有错误和报警,但下载时却出现下面的错误: 解决方法:如下图所示,删去多余的选项即可.

  5. STM32F103ZET6程序移植为C8T6+C8T6下载程序flash timeout的解决方案

    文章目录 一.程序移植 :程序移植还是蛮简单的 二.程序下载 : 会出现问题 (一)BOOT0和BOOT1 (二)程序下载 1.代码通用 2.状况不断 3.解决办法 (三)STM32F103C8T6下 ...

  6. oracle ipc message,【案例】Oracle RAC IPC send timeout error导致RAC的节点挂起解决办法

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle RAC环境数据库节点挂起,分享日志发现是由于IPC send timeout error导致RAC的节点挂起. 本站文章除注明转载外 ...

  7. linux下生成guid,在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。...

    在Linux下编写生成GUID的程序,如下 guid.c 文件: #include #include void uuid2string(const uuid_t uu, char* const str ...

  8. 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)

    错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构

  9. 下载logisim时显示“系统找不到指定路径”的解决办法!!!!

    下载logisim时显示"系统找不到指定路径"的解决办法!!!! 最后全部搞完的时候百度到了这个: 因为我的电脑之前胡乱删了一些东西而且Java没卸载,总之就很乱,但是我没卸载干净 ...

最新文章

  1. keepalived 的配置文件
  2. K-Means ++ 和 kmeans 区别
  3. 数据分析体系构建那点事!
  4. 微信“拍一拍”,竟然可以使用Python实现,你get到了吗?
  5. 前几天和前58技术委员会主席聊了聊技术梦想
  6. (217)如何选择硬件描述语言
  7. SharePoint自动化系列——通过PowerShell创建SharePoint Lists
  8. 华为机试HJ106:字符逆序
  9. 经典:从追MM谈Java的23种设计模式
  10. MySQL触发器自动更新memcache[转]
  11. 逆袭进大厂:程序员究竟该如何学好前端?
  12. Nginx+Tomcat关于Session的管理
  13. 手机开热点但是电脑一直连接不上_电脑连不上wifi,手机可以连上。手机开热点,电脑可以连上。这是怎么回事,电脑就一直循环连接那个w...
  14. Chase your purpose,not your passion
  15. 把自己做的网站进行app封包
  16. 写给程序员看的面向对象摄影技巧
  17. 解决跨域设置Cookie问题
  18. 登录管理(权限管理) token
  19. VMware虚拟机安装Ubuntu以及Linux入门基础
  20. 免费的uml建模工具

热门文章

  1. 赵加雨:追求极致的习惯让我受益匪浅
  2. 许耀武:有趣有挑战的二十年
  3. Go 高性能编程技法
  4. 带你快速了解 Docker 和 Kubernetes
  5. 大牛书单 | 搜索大牛都读什么书?
  6. 一站式计费解决方案——腾讯计费首次亮相昆明
  7. Lua的require使用
  8. lua-nginx-module directives 中文版
  9. NGINX 进程通信机制
  10. MySQL调优(六):分区设计,分区优化案例