I2C和AT24C256的应用

STM32CubeMX + HAL库实战:手把手教你搞定AT24C256的硬件I2C读写(附完整驱动代码) 本文详细介绍了如何使用STM32CubeMX和HAL库实现AT24C256 EEPROM的硬件I2C读写,包括硬件设计、CubeMX配置、HAL库函数解析以及完整驱动代码实现。重点解决了硬件I2C配置中的常见问题,并提供了优化技巧和调试方法,帮助开发者快速集成到嵌入式项目中。 阅读详情

纠结的第二个问题,也纠结了一个多礼拜,原因是在I2C写入从器件地址的时候没有响应,即返回的I2C总线状态为0x20!

  AT24C256,这一个256K位的EEPROM,说的通俗一点就是一个32KB的硬盘(可以这么理解),由于上面文章说的,新唐的M051只有4KB,而我的一个按键需要512B来存储,这就是需要对容量进行外来扩展:

我们可以看到这是一个8脚的芯片,A1A0就是从器件地址,NC悬空,WP是写保护,接低的时候可以正常读写,接高的时候只能读,SCL和SDA就是I2C的两个脚,连上就行了!

  但是笔者的错误在于往器件写入从地址的时候,(此时A1和A0接低,从器件地址为0x00),从器件没有反应,网上有很多说法,比如坏了,或者时序乱了,我用的是实例程序,所以时序不可能错了,笔者之所有没有得到反应原来是忘记接上拉电阻,在SCL和SDA两个脚接上各3K的上拉电阻,,那么程序就运行正确了,但是记住这个的读写速度非常慢,读写16页的时间可能需要几秒钟,所以要耐心等待,不要误认为是死在程序里面了,虽然这个问题听起来容易,但是实实在在是困惑了笔者一个多星期,希望有和笔者一样的,能够少走弯路!

I2C总线开发设计需要注意的4个方面 I2C总线开发设计的4个要点 01、 总线容量与驱动能力 I2C总线的外围扩展器件都是CMOS器件,总线有足够的电流驱动能力,因此总线上扩展的节点数不由电流负载能力决定,而由电容负载确定。 总线上每个实际节点器件的总线接口都有一定的等效电容,等效电容的存在会造成总线传输的延迟,导致数据传输出错。 通常总线负载能力为400pF,通常各个I2C器件都会有它自己的电容值,一般为不大于20pF,据此可计算出总线长度及节点数目的限制数量。总线上的每个外围器件都有一个器件地址,因此总线上扩展外围器件时也要受器件地址限制 阅读详情

相关推荐

Arduino与Proteus仿真实例-AT24C256串行(I2C)EEPROM数据存取驱动仿真

AT24C256串行(I2C)EEPROM数据存取驱动仿真 EEPROM(电可擦除可编程只读存储器)是用户可修改的只读存储器(ROM),可以通过施加高于正常电压的电压反复擦除和重新编程(写入)。 与 EPROM 芯片不同,EEPROM 不需要从计算机中取出即可进行修改。 但是,EEPROM 芯片必须整体擦除和重新编程,而不是选择性地擦除和重新编程。 它还具有有限的寿命——也就是说,它可以重新编程的次数被限制在数万或数十万次。 在计算机使用过程中经常重新编程的 EEPROM 中,EEPROM 的寿命可能是一个

视觉与物联智能 1128

Tiny6410裸机IIC读写EEPROM

一、S3C6410 IIC资源 由 IICCON、 IICSTAT、 IICDS 和IICADD 4个寄存器完成所有的操作。本实验中6410作为主机,因此只用到了前三个寄存器。IICADD只有在作为从机的时候才被用来存放从机的地址。 IICCON:bit[7]用于接收时的ACK使能, 在发送模式下该位不起作用 bit[6]用于...

weixin_43261234的博客 497

STM32F1与STM32CubeIDE编程实例:设备驱动-EEPROM-AT24C256驱动在物联网中的应用

本文将介绍如何使用STM32F1微控制器和STM32CubeIDE来编写设备驱动程序,以实现对EEPROM存储器AT24C256的控制。通过按照上述步骤,您就可以在STM32F1微控制器上使用STM32CubeIDE编写设备驱动程序,实现对AT24C256 EEPROM存储器的控制。在实际应用中,您可能需要添加适当的错误检查和处理机制,以确保代码的鲁棒性和可靠性。在STM32CubeIDE中创建一个新的项目,并选择正确的STM32F1系列微控制器型号。创建一个新的源文件,用于实现对AT24C256的控制。

JmwvOverflow的博客 425

I2C总线

IIC 总线简介 I2C 总线是一种用于IC 器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送数据,并根据地址识别每个器件:不管是单片机、存储器、LCD 驱动器还是键盘接口。I2C 能用于替代标准的并行总线,能连接各种集成电路和功能模块。支持IIC 的设备有微控制器、ADC、DAC、储存器、LCD 控制器、LED 驱动器以及实

chendesheng1988的专栏 1753

AT24C256 EEPROM存储器读写操作指南

AT24C256是一种广泛使用的串行EEPROM芯片,具有256K位存储容量。它使用I²C协议进行数据通信,适用于多种微控制器系统。这种非易失性存储器在断电后依然能够保持数据不丢失,常被用于存储配置信息、日志数据或代码引导程序。

weixin_33610780的博客 2998

AT24C256 EEPROM驱动程序实战源代码

EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可用电擦除的可编程只读存储器。由于其非易失性(在断电的情况下数据不会丢失)、可重复擦写和读写的特性,使其在各种应用中被广泛使用,如固件存储、数据记录等。在第二章中,我们将深入探讨AT24C256 EEPROM的驱动程序源代码包。该源代码包是实现与AT24C256 EEPROM通信的关键组件,通常包括一组函数、宏定义和数据结构,用于初始化设备、执行读写操作以及处理设备状态。

weixin_35696112的博客 1198

Arduino 大内存开发板四剑客之----32K字节AT24C256

CC最近推出了多款大容量存储的Arduino 开发板,涵盖了EEPROM FLASH FRAM SD等,今天我来给大家介绍第一款 基于AT24C256的 容量高达32K eeprom开发板。

hemnpowerpop的博客 1670

AT24Cx:在Arduino项目中使用Atmels EEPROM AT24C32AT24C64AT24C128AT24C256AT24C512的库

AT24CX库 在Arduino项目中使用Atmels EEPROM AT24C32 / AT24C64 / AT24C128 / AT24C256 / AT24C512的库。 有关定义和差异的信息,请参见 。 由Christian Paul撰写,2014年-2015年。该软件根据MIT许可条款发行。 有关详细信息,请参见文件LICENSE或LIZENZ。 您可以在I2C总线上使用八种可能的EEPROM器件中的任何一种。 建设者 AT24CX(byte pageSize); 使用索引为0且给定页面大小的设备。 您可以使用构造函数选择索引在0到8之间的设备 AT24CX(byte index, byte pageSize); 然后,您可以使用以下命令从EEPROM单个写入或读取单个字节: void write(unsigned int address, byte data); byt

Arduino UNO驱动 AT24C256 EEPROM存储器模块

Arduino UNO对AT24系列EEPROM存储器读写数据

优信电子的博客 4270

XilkaEEPROM:Arduino EEPROM (AT24C256) 库

I2C EEPROM 的行为非常相似,因此相当多的 EEPROM 应该无需修改即可工作。 这是我用于测试的分线板: EEPROM AT24C256 分线板: ://www.amazon.com/gp/product/B00FHN6XLU/ 这是一个应该可以工作的 Arduino 扩展板: 带 AT24C256 的 EEPROM 屏蔽: ://www.emartee.com/product/41950/Arduino-EEPROM-Shield-With-256K-AT24C256 如果你需要在 Arduino 中做一些数据存储,那么使用 EEPROM 可能是最简单的做法。 实际上,Arduino 使用的 ATmega 芯片本身具有一定的 EEPROM 内存,但数量有限。 我们设计了外置的EEPROM内存模块,使用I2C总线连接Arduino,并带有可插拔芯片,插在这个系列中,

Unity UI Toolkit避坑指南:从官方Samples到实际项目,这些‘坑’我帮你踩过了

本文分享了Unity UI Toolkit在实际项目中的避坑经验和优化技巧,包括动画系统的高效替代方案、3D世界UI的创新实现方式、USS样式继承的反直觉规则等。通过详细的代码示例和性能优化策略,帮助开发者避免常见陷阱,提升开发效率。

weixin_29535577的博客 343

AT24C256读取数据

AT24C256读取数据 4G模块724UG Lua I2C 724UG官网给出的API太过简单,不易用于实战。这是我调试产品的时候,遇到I2C时,调试的功能程序,希望对大家有帮助。 我们先来看看AT24C256读取数据读取数据的指令规则: 我们只要看这个就可以。AT24C256读取数据与AT24C02的区别在于上图的第二个地方。注意这里就可以了。 接下来是代码,代码中有点睛之笔。 main文件 PROJECT = “I2C” VERSION = “2.0” – 日志 require “log” LO

weixin_43861166的博客 2665

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5295

eeprom的wp 引脚_AT24C256C 256Kbit I2C EEPROM_引脚说明_功能应用

AT24C256是32K字节,8针EEPROM集成电路。我们知道EEPROM代表电可擦可编程只读存储器,我们可以在该IC上存储信息,即使关闭电源(如笔式驱动器),该信息也将保留在其中。然后,可以在需要时检索或覆盖信息。AT24C256 EEPROM引脚配置Pin NumberPin NameDescription1,2,3A0,A1,A2User configured Chip Select pi...

weixin_35969301的博客 2901

深度学习分类任务中,正负样本比例失衡的5种实战解决方案(附代码)

本文深入探讨了深度学习分类任务中正负样本比例失衡的5种实战解决方案,包括智能采样技术、动态数据增强、损失函数工程、模型架构创新和训练策略优化。针对信用卡欺诈检测、医疗诊断等场景,提供了详细的代码实现和评估方法,帮助开发者有效解决样本不平衡问题,提升模型在真实场景中的表现。

h9j8k7l6m5n的博客 426

调试备忘录-SWD协议解析

目录--点击可快速直达 文章目录写在前面1  SWD协议简介2  SWD物理层协议解析2.1  SWD通信时序分析2.2  SWD 寄存器简介2.2.1  DP寄存器2.2.2  AP寄存器2.3  SWD通信流程2.3.1  SWD复位2.3.2  SWD读IDCODE2.3.3  SWD清除错误标志位,并且使能AP调试2.3.4  SWD读取AP IDR(也就是AP寄存器的ID CODE)2.3.5  SWD读写MCU任意寄存器 写在前面 最近由于公司需要,所以就做了个基于SWD协议的离线烧写器。由于.

洛神殇的博客 1万+

小智音箱写入AT24C256 I2C存储器

本文深入解析小智音箱集成AT24C256 I2C存储器的技术方案,涵盖硬件连接、协议时序、驱动开发及实际应用场景,包括配置持久化、固件回滚与日志循环存储,并提出可靠性测试与安全防护策略。

weixin_33298352的博客 695

LT8711/LT8712 Type-C转HDMI设计方案|替代LT8711/LT8712芯片|GSV2201可完全替代兼容LT8711/LT8712

LT8711UX是一款高性能C/DP1.2型至HDMI2.0转换器,用于将USB Type-C源或DP1.2源连接到HDMI2.0接收器。该LT8711UX集成了一个DP1.2兼容的接收器,和一个HDMI2.0兼容的发射器。此外,还包括两个CC控制器,用于CC通信,以实现DP Alt模式和功率传输功能,一个用于上游Type-C端口和另一个用于下游端口。

weixin_63518914的博客 1641

i2c子系统之at24c02简介

AT24C02存储规格 总共32个page,每个page为8byte。总共256KB(2Kb),地址的长度需要使用8bit(刚好可以用来表示256个字节的地址)来表示。 AT24CC02的地址 设备的地址由8bit组成,前4 bit是固定的(1010);接着的3 bit是和A2 A1 A0的硬件连接相关,通过指定这3 bit

月出皎兮。 佼人僚兮。 舒窈纠兮。 劳心悄兮。 7779

petalinux2022.2启动文件编译配置

petalinux2021之前的版本里,导入目录components/yocto/下的“environment-setup-aarch64-xilinx-linux” 和 “layers/core/oe-init-build-env”的环境,能使用Yocto的devtool工具。(加入下面内容,先petalinux-build下载完成后才能有源码)制作 BOOT.BIN 启动文件:petalinux-package --boot --fsbl --fpga --u-boot --force。

wangjie36的博客 1401

Android 13.0 开机启动优化之PMS扫描apk耗时相关功能优化

在android13.0的系统rom定制化开发中,在系统中开发产品时,会根据客户要求内置第三方app,这时如果内置app过多,或者安装的app过多,在系统开机的过程中 在pms扫描安装app的时候,就会比较耗时,这时候就需要优化下pms扫描安装app这块的功能代码,用多线程来实现pms扫描安装app,来加快开机时间,接下来 来实现这个功能

安卓兼职framework和app工程师的博客 1335

AT24C01中文资料及程序资源下载:让存储变得简单可靠

AT24C01中文资料及程序资源下载:让存储变得简单可靠 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在众多电子产品中,数据存储是至关重要的环节。AT24C01作为一款广泛应用的小容量EEPROM存储芯片,其稳定性和可靠性受到许多开发者的青睐。本项目为您提供了AT24C01的详尽中文资料和程序资源下载,旨在帮助您更好地理解和使用这款芯片,轻松实现数据存储功能。 项目...

gitblog_06741的博客 1086

微信小程序 - 详细实现打开跳转第三方 H5 网页链接,在微信小程序内直接跳转打开第三方网站链接详细教程(支持跳转公众号文章等,直接复制代码即可)

小程序跳转h5,小程序-Taro小程序中打开h5页面链接,...小程序跳转h5链接(web-view)_微信小程序,小程序如何跳转h5页面,小程序跳转到第三方H5网页,微信小程序跳转第三方H5的方法,小程序-实现怎么跳转打开H5网页链接(或跳转至公众号文章,打开第三方网站,放校验文件,怎么配置业务域名,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,后台配置,怎么

🏆 前端领域优质创作者 3万+

AT24C02 掉电存储

编号名称功能1A0地址输入。A2、A1和A0是器件地址输入引脚。24C02/32/64使用A2、A1和AO输入引脚作为硬件地址,总线上可同时级联8个24C02/32/64器件。24C04使用A2和A1输入引脚作为硬件地址,总线上可同时级联4个24CO4器件,A0为空脚,可接地。24C08使用A2输入引脚作为硬件地址,总线上可同时级联2个24C08器件,AO和A1为空脚,可接地。24C16未使用器件地址引脚,总线上最多只可连接一个16K器件,A2、A1和A0为空脚,可接地。2A13。

特纳斯电子官方博客站 1306

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

AT24C256EEPROM读写程序:稳定通信,数据读写无忧

AT24C256EEPROM读写程序:稳定通信,数据读写无忧 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 AT24C256EEPROM读写程序是一个开源项目,专注于实现一种基于IO口通信方式下的I2C通信解决方案,专门为AT24C256 EEPROM芯片设计。该程序通过精确的通信协议和稳定的代码实现,为开发人员提供了一种高效、可靠的EEPROM读写手段。 项目技术分...

gitblog_06758的博客 411

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 自学习式,智能万能空调遥控-----纠结了我一个多礼拜的问题
下一篇: 新唐cortex-m0之RS485通讯
memoryjs
博客等级 码龄18年 240粉丝 113原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值