蓝桥杯篇---EEPROM内部存储地址

embedded/2025/3/10 17:14:54/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="markdown_views prism-atom-one-dark">cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

class="toc">

文章目录

  • 前言
  • 1. EEPROM 容量与地址范围
  • 2. 代码中的 addr 参数
  • 3. 大容量 EEPROM 的地址扩展
  • 4. 地址分配建议
    • 系统配置
    • 用户数据
    • 日志数据
  • 5. 注意事项
    • 地址溢出
    • 页写入限制
    • 写保护
    • 写延时
  • 总结


前言

EEPROM的代码中࿰c;EEPROM_WriteEEPROM_Read 函数的 addr 参数EEPROM 的内部存储地址c;其取值范围由 EEPROM 的容量决定。以下是详细说明:


EEPROM__15">1. EEPROM 容量与地址范围

EEPROM容量决定了 addr 参数的有效范围。常见的 EEPROM 容量及地址范围如下:

ckquote>

EEPROM 型号 容量 地址范围(16进制) 地址范围(十进制) 地址长度
24C01 128 字节 0x00 ~ 0x7F 0 ~ 127 1 字节
24C02 256 字节 0x00 ~ 0xFF 0 ~ 255 1 字节
24C04 512 字节 0x00 ~ 0x1FF 0 ~ 511 1 字节
24C08 1024 字节 0x00 ~ 0x3FF 0 ~ 1023 1 字节
24C16 2048 字节 0x00 ~ 0x7FF 0 ~ 2047 1 字节
24C32 4096 字节 0x0000 ~ 0x0FFF 0 ~ 4095 2 字节
24C64 8192 字节 0x0000 ~ 0x1FFF 0 ~ 8191 2 字节
24C128 16384 字节 0x0000 ~ 0x3FFF 0 ~ 16383 2 字节
24C256 32768 字节 0x0000 ~ 0x7FFF 0 ~ 32767 2 字节

ckquote>

2. 代码中的 addr 参数

EEPROM的代码中࿰c;addr 参数为 1 字节(unsigned char 类型)c;因此适用于 小容量 EEPROM(如 24C01、24C02、24C04、24C08、24C16)。其有效范围为:

ckquote>

16 进制:0x00 ~ 0xFF
10 进制:0 ~ 255

ckquote> ckquote>

示例:
对于 24C02(256 字节):
addr 可以是 0x00 ~ 0xFF。
例如:EEPROM_Write(0x10, 0x55) 表示将数据 0x55 写入地址 0x10。

ckquote>

EEPROM__38">3. 大容量 EEPROM 的地址扩展

如果使用 大容量 EEPROM(如 24C32、24C64、24C128、24C256)࿰c;addr 需要扩展为 2 字节(unsigned int 类型)。此时࿰c;代码需要修改为:
发送地址时࿰c;先发送高字节࿰c;再发送低字节

<code class="prism language-c">示例(以 class="token number">24C256 为例):
class="token keyword">void class="token function">EEPROM_Writeclass="token punctuation">(class="token keyword">unsigned class="token keyword">int addrclass="token punctuation">, class="token keyword">unsigned class="token keyword">char dateclass="token punctuation">) class="token punctuation">{class="token function">I2CStartclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">I2CSendByteclass="token punctuation">(class="token number">0xA0class="token punctuation">)class="token punctuation">;          class="token comment">// 发送器件地址(写模式)class="token function">I2CWaitAckclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">I2CSendByteclass="token punctuation">(addr class="token operator">>> class="token number">8class="token punctuation">)class="token punctuation">;     class="token comment">// 发送高字节地址class="token function">I2CWaitAckclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">I2CSendByteclass="token punctuation">(addr class="token operator">& class="token number">0xFFclass="token punctuation">)class="token punctuation">;   class="token comment">// 发送低字节地址class="token function">I2CWaitAckclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">I2CSendByteclass="token punctuation">(dateclass="token punctuation">)class="token punctuation">;          class="token comment">// 发送数据class="token function">I2CWaitAckclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">I2CStopclass="token punctuation">(class="token punctuation">)class="token punctuation">;
class="token punctuation">}
code>

4. 地址分配建议

在实际应用中࿰c;addr 的分配应根据数据存储需求进行规划。以下是一些常见的分配方式:

系统配置

系统配置:固定地址(如 0x00 ~ 0x0F)

用户数据

用户数据:动态地址(如 0x10 ~ 0xFF)

日志数据

日志数据:循环地址(如 0x20 ~ 0x7F࿰c;循环覆盖)

ckquote>

示例:
系统配置存储在 0x00 ~ 0x0F。
用户数据存储在 0x10 ~ 0x7F。
日志数据存储在 0x80 ~ 0xFF࿰c;循环覆盖。

ckquote>

5. 注意事项

地址溢出

确保 addr 不超过 EEPROM 的容量范围c;否则可能导致数据覆盖或写入失败

页写入限制

某些 EEPROM(如 24C02)支持页写入(如 16 字节/页)。
跨页写入时需分多次操作

写保护

某些 EEPROM 支持写保护功能࿰c;需通过硬件引脚或命令启用/禁用

写延时

EEPROM 写入后需等待几毫秒(t_WR)c;确保数据写入完成。
代码中未包含写延时࿰c;实际应用中需添加:

<code class="prism language-c">class="token keyword">void class="token function">EEPROM_Writeclass="token punctuation">(class="token keyword">unsigned class="token keyword">char addrclass="token punctuation">, dateclass="token punctuation">) class="token punctuation">{class="token comment">// ...发送数据class="token function">I2CStopclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token function">Delay_msclass="token punctuation">(class="token number">5class="token punctuation">)class="token punctuation">; class="token comment">// 添加延时
class="token punctuation">}
code>

总结

  1. 小容量 EEPROM(如 24C02):addr 为 1 字节c;范围 0x00 ~ 0xFF。
  2. 大容量 EEPROM(如 24C256):addr 为 2 字节c;范围 0x0000 ~ 0x7FFF。
  3. 合理分配 addr࿰c;避免地址溢出和页写入限制
  4. 通过合理设置 addr 参数࿰c;可以实现对 EEPROM 的高效读写操作


http://www.ppmy.cn/embedded/171537.html

相关文章

机器学习周报-文献阅读

文章目录 摘要Abstract 1 文章内容1.1 模型1.1.1 Geo Embedding1.1.2 ST encoder1.1.3 ST decoder 1.2 实验 2 相关知识2.1 Huber 损失函数2.2 代码总结 摘要 本周阅读了题目为Design of Prediction Framework Geo-TA Utilizing Spatial and Temporal Water Quality Data Inte…

leetcode-sql数据库面试题冲刺(高频SQL五十题)

题目&#xff1a; 197.上升的温度 表&#xff1a; Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate …

类和对象—多态—案例2—制作饮品

案例描述&#xff1a; 制作饮品的大致流程为&#xff1a;煮水-冲泡-倒入杯中-加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作产品基类&#xff0c;提供子类制作咖啡和茶叶 思路解析&#xff1a; 1. 定义抽象基类 - 创建 AbstractDrinking 抽象类&#xff0c;该类…

Ae 效果详解:VR 发光

Ae菜单&#xff1a;效果/沉浸式视频/VR 发光 Immersive Video/VR Glow VR 发光 VR Glow效果用于在 VR 视频中创建光晕效果&#xff0c;并针对等距柱状投影&#xff08;Equirectangular&#xff09;进行优化&#xff0c;以确保全景画面中的光晕均匀分布&#xff0c;不受画面边缘…

JavaWeb后端基础(7)AOP

AOP是Spring框架的核心之一&#xff0c;那什么是AOP&#xff1f;AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实说白了&#xff0c;面向切面编程就是面向特定方法编程。AOP是一种思想&#xff0c;而在Spring框…

PCIe协议之RCB、MPS、MRRS详解

✨前言&#xff1a; PCIe总线的存储器写请求、存储器读完成等TLP中含有数据负载&#xff0c;即Data Payload。Data Payload的长度和MPS&#xff08;Max Payload Size&#xff09;、MRRS&#xff08;Max Read Request Size&#xff09;和RCB&#xff08;Read Completion Bounda…

hadoop框架与核心组件刨析(五)ZOOKEEPER及选举深度刨析

目录 基本概念解释&#xff1a; 1. Leader 2. Follower 3. Observer 4. Learner 5. Client 角色对比 ZOOKEEPER选举过程&#xff1a; 1. 快速Leader选举&#xff08;Fast Leader Election&#xff09; 选举过程&#xff1a; 特点&#xff1a; 2. 基于TCP的Leader选举…

Cocos Creator Shader入门实战(三):CCEffect参数配置讲解

引擎版本&#xff1a;3.8.5 您好&#xff0c;我是鹤九日&#xff01; 回顾 稍微回顾下前面两篇博客讲解的内容&#xff1a; 一、Cocos渲染效果的实现需要Material材质和Effect资源的互相配合。 二、Effect资源负责Shader片段的编写和属性配置&#xff0c;Material材质负责对E…