STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

背景:

有一个项目用到STM32F091芯片去读取 AT24C512C-SSHD  EEPROM 芯片,我直接移植了之前项目的IIC库,结果程序运行后,读不出EEPROM里面的数据。

摘要:

本文主要介绍一个基于STM32F091芯片和AT24C512C-SSHD EEPROM芯片的项目,该项目旨在读取EEPROM芯片中的数据。我直接移植了之前项目的库,但是遇到了读不出EEPROM数据的问题。本文记录了问题的发型与排查过程。

运行开发环境介绍

硬件环境

STM32F091CBT6

J-LINK  V11

软件开发环境

IAR 8.32.1 

VSCODE 

软件支持包ST HAL 库

正文:

来到新公司后接了一个项目,用到STM32F091芯片去读取 AT24C512C-SSHD  EEPROM 芯片,我直接移植了之前项目的IIC驱动库,结果程序运行后,读不出EEPROM里面的数据。

解决方法:

1.单步仿真,在IIC驱动部门的SCL和SDA 拉高和拉低之后打断点,然后单步运行,用万用表测量电压,看SCL 和SDA线的电平变化是否正常。

2.重新查看EEPROM芯片数据手册,搜索定位问题。

实验结果:

解决方法1:

单步仿真,用电压表量电压,发现电压变化正常。

解决方法2:

重新查看数据手册,发现了下面的东东:

大体意思就是说, AT24C512C Device Address 的地址字中

A0 A1 A2 代表着EEPROM芯片的IIC通讯地址。

而且设备地址的LSB最后一位还代表着不同的读写模式。

 再看一下我的电路图,可以看到,我的电路中A0是1,A1 A2 为 0 

可以看到我发送的器件地址为  0xA0,这就是因为我直接用的之前AT24C512 的 IIC  驱动库,没有注意到芯片的地址是可更改的。

所以程序中应该将地址改为:0xA8

容易踩的坑:

AT24C系列EEPROM的IIC通讯器件地址是可以硬件配置的!

移植原有代码的时候,特别是像我这样跳槽了后注意不同硬件设计人员的设计习惯不一样!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java-servlet

文章目录 一、概念二、Idea搭建javaWeb项目三、Servlet的生命周期四、请求重定向五、请求转发六、jsp基本使用七、JSTL标签库八、Servlet 过滤器 一、概念 定义 运行在服务端的Java应用程序。 作用 处理客户端发送的请求及响应处理的结果。 二、Idea搭建javaWeb项目 javaWe…

运筹学经典问题(四):多商品网络流问题

问题描述 多商品网络流问题(Multicommodity Network Flow, MCNF)是指在一个图网络中,多个商品从各自起点运输到各自终点的问题。 更具体的,给定一个图网络 G ( V , A ) G(V, A) G(V,A): K K K:表示商品的…

MTK Android P Sensor架构(一)

需求场景: 本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第…

TiDB存储引擎的初步认识

文章目录 TiDB简介分布式系统CAP 理论一致性可用性分区容错性 应用场景关系型模型事务ACID 特性原子性一致性隔离性持久性 与传统非分布式数据库架构对比TiDB 分布式数据库整体架构 TiDB简介 TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同…

静态路由原理与配置

文章目录 静态路由原理与配置一、路由器的工作原理1、路由概述2、路由器的工作原理 二、路由表的形成1、路由表2、路由表的形成 三、静态路由和默认路由1、静态路由的缺点2、默认路由(是特殊的静态路由)3、查看路由表 四、路由器转发数据包的封装过程五、…

Django模型

一、model 文件中的类的建立: 对应的是数据库中的每个表,类中有什么字段,表就会对应的生成某个字段,主键id字段会自己生成; 数据库中的文件获取:只能通过模型类.objects来获取,不能通过模型类…

TikTok与虚拟现实的完美交融:全新娱乐时代的开启

TikTok,这个风靡全球的短视频平台,与虚拟现实(VR)技术的深度结合,为用户呈现了一场全新的娱乐盛宴。虚拟现实技术为TikTok带来了更丰富、更沉浸的用户体验,标志着全新娱乐时代的开启。本文将深入探讨TikTok…

数据结构与算法-动态规划-买卖股票的最佳时机

买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交…

C# WPF上位机开发(内嵌虚拟机的软件开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 学习过halcon的同学都知道,它不仅有很多的图像算子可以使用,而且调试很方便。每一步骤的调试结果,都可以看到对…

C语言内存池的使用场景和代码示例

当然可以。在C语言中,内存池是一种用于管理内存分配的技术。使用内存池可以避免频繁地申请和释放内存,从而提高内存的使用效率,并减少内存碎片。内存池的使用场景主要包括需要频繁分配和释放相同大小的内存块的情况。下面是一个简单的C语言代…

什么是云际计算?SD-WAN在云际计算中的作用是什么?

在当今数字化时代,云计算已经成为企业处理数据和应用程序的主要方式。然而,随着物联网设备数量的增加和对实时性要求的提高,传统的集中式云计算模型面临一些挑战。为了解决这些问题,云际计算(Edge Computing&#xff0…

TDengine Kafka Connector将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine

教程放在这里:TDengine Java Connector,官方文档已经写的很清晰了,不再赘述。 这里记录一下踩坑: 1.报错 java.lang.UnsatisfiedLinkError: no taos in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.j…

亚马逊、速卖通、虾皮等平台有哪些测评补单方案,哪个比较好用

随着全球电子商务的迅速发展,跨境电商环境的潜力和机遇日益显现。跨境卖家们可以更便捷地将产品销售到全球市场,但同时也面临着更激烈的竞争、更严格的规定和更高的运营成本等挑战。在这个环境中,如何抓住机遇并克服挑战,成为了所…

Harmony OS基本介绍

作为华为最新的操作系统,Harmony OS在全球范围内引起了广泛的关注和探讨。它是一款开放、协同、可定制的智能终端操作系统,可以在不同的设备上实现无缝的互联互通。在本篇文章中,我们将对Harmony OS的使用做一个总结,分别从以下几…

数据库系统相关概念

数据:描述事务的符号记录。 数据库(DB):按一定的数据模型组织,描述和存储在计算机内的,有组织的,可共享的数据集合。 数据库管理系统(DBMS):位于用户和操作系统之间的一层数据管理软件。主要功能包括&#…

基于Qt的蓝牙Bluetooth在ubuntu实现模拟

​# 前言 Qt 官方提供了蓝牙的相关类和 API 函数,也提供了相关的例程给我们参考。笔者根据 Qt官方的例程编写出适合我们 Ubuntu 和 gec6818开发板的例程。注意 Windows 上不能使用 Qt 的蓝牙例程,因为底层需要有 BlueZ协议栈,而 Windows 没有。Windows 可能需要去移植。笔者…

Java 值传递、引用传递

开始之前,我们先来搞懂下面这两个概念: 形参&实参值传递&引用传递 方法的定义可能会用到 参数(有参的方法),参数在程序语言中分为: 实参(实际参数,Arguments)…

js中常用的字符串操作!!!

1.字符串的长度 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2 "asdfzcxfv"; // 1.字符串的长度 console.log(str1.length);2. charAt() : 返回指定索引位置的字符 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2…

jemeter,断言:响应断言、Json断言

一、响应断言 接口A请求正常返回值如下: {"status": 10013, "message": "user sign timeout"} 在该接口下创建【响应断言】元件,配置如下: 若断言成功,则查看结果树的接口显示绿色,若…

python自动化测试实战 —— 自动化测试框架的实例

软件测试专栏 感兴趣可看:软件测试专栏 自动化测试学习部分源码 python自动化测试相关知识: 【如何学习Python自动化测试】—— 自动化测试环境搭建 【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更…