STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下:

出现下面两个问题:
1)下载问题界面如下:

这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF,但实际上应该写入08H,即校验时读取到数据与实际写入的不符。
2)在DEBUG调试的时候,出现如下问题:
调试的时候,无法跳转到main()函数,无法进行调试。

二)尝试了解决方案如下:
1)检查电源电压和复位电路(复位引脚3.3V经过10K电阻上拉)、VCC和复位NRST的电压为3.1V.芯片供电无误。
2)打开STM32 ST-LINK Utility软件,使用ST_link连接电脑和板子,打开Target-connect,连接时,会报flash sectors read protect的警告,对芯片的flash进行全擦除。(问题如故)
3)升级软件包Keil.STM32F1xx_DFP.2.4.1为最新。(问题如故)
4)尝试更换下载算法,d:\Keil_v5\Packs\Keil\STM32F1xx_DFP\2.4.1\Flash\STM32F10x_128.FLM(问题如故)。
5)编译器优化,之前开的是Level0,基本没优化,之后我更改为level1,代码有所缩减,但是没有解决问题(问题如故)。
6)下载程序时,取消校验,这个就纯属掩耳盗铃。
7)减小下载速度,问题如故。
三)解决办法:
将Debug菜单 - Reset菜单选项(HWreset/sysresetReq/Vectreset)由“sysresetReq”改为“HWreset”,下载正常,调试也正常。更改界面如下:

可以正常Debug,如图:


四)原因分析:
一些概念如下:
1、Reset — HW RESET
英文含义:performs a hardware reset by asserting the hardware reset (HW RESET) signal.
中文含义:复位-硬件复位通过置位硬件复位(HW RESET)信号来执行硬件复位。
2、Reset — SYSRESETREQ
英文含义:performs a software reset by setting the SYSRESETREQ bit. The Cortex-M core and on-chip peripherals are reset.
中文含义:通过将SYSRESETREQ位置1来执行软件复位。 Cortex-M内核和片上外设被重置。
3、Reset — VECTRESET
英文含义:performs a software reset by setting the VECTRESET bit. Only the Cortex-M core is reset. The on-chip peripherals are not affected. For some Cortex-M devices, VECTRESET is the only way to reset the core. VECTRESET is not supported on Cortex-M0 and Cortex-M1 cores.
中文含义:复位-VECTRESET通过将VECTRESET位置1来执行软件复位。 仅Cortex-M内核被重置。 片上外设不受影响。 对于某些Cortex-M设备,VECTRESET是重置内核的唯一方法。 Cortex-M0和Cortex-M1内核不支持VECTRESET。
4、Reset — Autodetect
英文含义:selects one of the above reset methods based on the target device. The SYSRESETREQ method is used if an unknown device is detected.
中文含义:重置-自动检测根据目标设备选择上述重置方法之一。 如果检测到未知设备,则使用SYSRESETREQ方法。
连接类型选项:
Normal:默认的连接策略,连接后只是将 PC 停在当前执行的指令处
with Pre–reset:在连接前,先执行一次 HW RESET
under Reset:在连接过程中一直保持 HW RESET 有效(该选项适用于用户程序误将 JTAG/SWD 禁掉的情况)
without Stop:连接后任 CPU 自由执行(适用于观测存储器或者外设 SFR 情况)
复位类型选项:
HW RESET:通过翻转ULink2的nSRST/nRESET引脚(一般也会接到MCU reset脚)来复位MCU
SYSRESETREQ:借助Cortex-M内核模块SCB中的AIRCR寄存器的SYSRESETREQ位来同时复位MCU外设模块
VECTRESET:借助Cortex-M内核模块SCB中的AIRCR寄存器的VECTRESET位功能来复位Core
由于我的MCU的NRST连接到了ULink2的nSRST/nRESET引脚和PCB板上另一个芯片的复位管脚,可能的原因是:SYSRESETREQ复位方式由于另一个芯片的影响,无法进行MCU的正常复位,然而,HW RESET方式下,ULINK2可以通过硬件反转NRST复位引脚,成功复位MCU。
分析:
复位的时序会影响程序的下载和调试(能否停在程序入口函数,能否进行单步),具体的影响逻辑没有理清楚。
五)经验教训
MCU的复位管脚一定要谨慎使用,当需要和其他芯片连接时,要清楚上下拉强度,清楚驱动电流大小。否则复位失效。
相关文章:
STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…...
用户界面的UML建模10
非正常的可视反馈可伴随着同步事件发生,而同步事件可由系统动作产生。但是,可以分别对它们进行建模。 在下节中将对这些特殊的事件依次进行论述。 6.1 异常处理建模 异常,由Meyer 定义[16],其作为运行时事件(run-time events&a…...
电影动画shader解析与实现
着色器代码解析 大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:…...
蓝桥杯 第十五届 研究生组 B题 召唤数学精灵
问题描述: 数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和,即:A(n)12⋯n累乘法仪式 B(n) 则是将从 1 到 n 的所…...
在 Go 应用中 如何像 FastAPI 一样优雅地构建控制器
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
用户界面的UML建模11
然而,在用户界面方面,重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此,《exception》类能够聚合《boundary》类。 参见图12,《exception》Database…...
历代iPhone运行内存大小和电池容量信息
系列设备名称充电端口标配充电线PD快充无线充电 (W)标配充电器电池容量 (mAh)发布时间RAM运存iPhone 16iPhone 16 Pro MaxUSB Type-CUSB-C to USB-C支持25无47472024/9/108GB LPDDR5XiPhone 16 ProUSB Type-CUSB-C to USB-C支持25无35772024/9/108GB LPDDR5XiPhone 16 PlusUSB …...
计算机网络之---物理层设备
什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备,它们主要处理数据的转换、信号的传输与接收,而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡(N…...
57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景
57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景 实现效果 该案例实现了使用Three.js创建一个带有聚光灯和旋转立方体的3D场景。 知识点 WebGLRenderer(WebGL渲染器) THREE.WebGLRenderer 是 Three.js 中用于将场景渲染为 WebGL 内容的核…...
第八讲 一元函数积分学的概念和性质
不定积分 1.原函数与不定积分 需知道:F(X)可导必连续 2.原函数(不定积分)存在定理 (1)连续函数f(x)必有原函数F(x) (2)含有第一类间断点和无穷间断点的函数f(x)在包含该间断点的区间内必没有原函数F(x). 速记:只有震荡可能有…...
ADMM原理及应用
文章目录 1. ADMM原理1.1. 数学形式1.2. 传统“乘子法”和它的不足1.3. ADMM 的核心思想:分步做1.4. Scaled Form of ADMM1.5. 迭代过程中主要检查的两大残差1.6. 怎么设置停止准则(Stopping Criteria)?1.7. 自适应调整罚参数 ρ \rho ρ(又…...
mysql之sql的优化方案(重点)
1、全字段匹配是最棒的 假如一个Staffs 这个表,将 name,age ,pos 组合成了一个联合索引,在where条件下,能够使用到的索引越多越好。 EXPLAIN SELECT * FROM staffs WHERE NAME July; EXPLAIN SELECT * FROM staffs WHERE NAME July AND age…...
【LeetCode】303. 区域和检索 - 数组不可变
目录 描述Python1. 前缀和 描述 给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left和right)之间的nums元素的 和 ,其中left < right 实现NumArray类: NumArray(int[] nums)&a…...
前端开发 vue 中如何实现 u-form 多个form表单同时校验
在 Vue 项目中使用 UView UI 的 u-form 组件时,多个表单同时校验的需求非常常见。例如,当我们有多个表单需要在同一个页面中进行校验并提交时,我们需要确保每个表单都能进行单独验证,同时可以在同一时刻进行批量验证。 接下来&am…...
【网络】什么是速率 (Rate)带宽 (Bandwidth)吞吐量 (Throughput)?
注意单位: 在 kbps、Mbps、Gbps 中,前面的 k、M、G 是 国际单位制(SI) 的前缀,表示不同的数量级: k(千/kilo): (10^3 1,000) kbps(kilobits per second): 每秒 1,000 位(…...
(leetcode算法题)769. 最多能完成排序的块
Q1. 是否能用贪心算法?为什么? 先预设一个策略,每当当前的nums[i]满足可以 "成块",就直接让这个数成块,也就是说之后的遍历过程中不会将这个数在考虑到自己的块内, "成块" 是指只要只…...
高光谱相机的特点
光谱特性 高光谱分辨率:能将光谱范围分割成极窄的波段,光谱分辨率通常达到纳米级甚至亚纳米级,可精确捕捉到不同物质在细微光谱差异上的特征,比如可以区分不同种类的植被因叶绿素含量等差异而在光谱上的细微变化。 多波段探测&a…...
《Spring Framework实战》8:4.1.3.Bean 概述
欢迎观看《Spring Framework实战》视频教程 Spring IoC 容器管理一个或多个 bean。这些 bean 是使用 您提供给容器的配置元数据(例如,以 XML <bean/>定义的形式)。 在容器本身中,这些 bean 定义表示为BeanDefinition对象&a…...
BGP的local_preference本地优先级属性
一、BGP的local preference属性简介 1、local preference公认任意属性 当一条BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由属性进行比较,从而筛选出最佳到达目标网络的通达路径。本地优先属性,只在IBGP对等体之间…...
IP地址与端口号
ip地址与端口号 IP地址和端口号是网络通信中的两个重要概念,它们共同构成了网络通信的基础。 IP地址:网络世界的门牌号 定义:IP地址(Internet Protocol Address)是分配给网络设备的数字标签,用于在计算机网…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
