1不同容量的AT24XX分析
1.1 AT24C01~AT21C16,容量分别是128,256,512,1024,2048个字节,页长度分别是8,8,16,16,16读写都是先发设备地址,然后发一个字节的字节地址
它们的设备地址如下所示:

1.2 AT24C32-AT24C64,容量分别是4096,8192个字节,页长度分别是32,32字节,读写都是先发设备地址,然后发一个字节的高地址,再发一个字节的低地址
它们的设备地址如下所示:
1.3 AT24C128~AT24C512容量分别是16384,32768个字节,页长度分别是64,64,128字节,读写都是先发设备地址,然后发一个字节的高地址,再发一个字节的低地址,它们的设备地址如下所示:

2 代码分析
//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址
//返回值 :读到的数据
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//发送高地址
// IIC_Wait_Ack();
}
else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //发送器件地址0XA0,写数据

IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XA1); //进入接收模式
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//产生一个停止条件
return temp;
}
//在AT24CXX指定地址写入一个数据
//WriteAddr :写入数据的目的地址
//DataToWrite:要写入的数据
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//发送高地址
}
else
{
IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //看手册,型号不同这里就不一样
}
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite); //发送字节
IIC_Wait_Ack();
IIC_Stop();//产生一个停止条件
HAL_Delay(10);
}

3.最后注意多字节跨页的读写问题

AT24XX EEPROM读写分析相关推荐

  1. STM32L0 系列 EEPROM 读写,程序卡死?

    STM32L0 系列EEPROM读写,使用过程必须注意到的问题,踩坑史 = =!......by 矜辰所致 目录 前言 一.写入地址问题 二.写入时候容易死机问题 2.1 问题的原因 2.2 问题的解 ...

  2. 小猫爪:这些年遇过的Bug1-KW36 FLASH模拟EEPROM读写错误

    小猫爪:这些年遇过的Bug1-KW36 FLASH模拟EEPROM读写错误 1 背景 2 场景描述 3 分析原因 4 解决方案 1 背景 芯片型号:MKW36A512VFT4(NXP) 操作系统:Fr ...

  3. STM8S103F2 EEPROM读写

    /************ STM8S103 EEPROM读写         ******/ /*芯片型号:STM8S103F2PB6                      */ /*功能描述: ...

  4. pic单片机c语言读eeprom,PIC16F877单片机内部EEPROM读写实例

    ;PIC16F877单片机内部EEPROM读写实例*************************************************************************** ...

  5. pic单片机c语言读eeprom,PIC单片机的EEPROM读写实例及说明

    PIC单片机的EEPROM读写实例及说明 来源:luchaohai 作者:华仔 浏览:1397 时间:2016-08-10 14:18 标签: 摘要: ; PIC单片机的EEPROM读写实例及说明;* ...

  6. linux mmc 读写,linux内核mmc读写分析

    MMC 读写分析 EMMC读写操作的调用栈 mmc_queue_thread -> mmc_blk_issue_rq -> mmc_blk_issue_rw_rq -> mmc_st ...

  7. 基于51单片机的EEPROM读写

    本讲内容: 对存储器的基本知识进行介绍.介绍EEPROM芯片AT24C02:通过例程展示EEPROM的读写. 存储器是应用于各种嵌入式场合的存储部件,按功能可分为只读存储器(ROM)和随机存取存储器( ...

  8. S29GL128P Norflash驱动读写分析

    S29GL128P Norflash驱动读写分析 2014-2-25 S29GL128P是在嵌入式系统中经常可以见到的一款Norflash芯片,存储结构为128(sectors)X128(Kbytes ...

  9. STC15系列单片机EEPROM读写示例

    STC15系列单片机EEPROM读写示例

最新文章

  1. How to never give up
  2. 栈与队列1——设计getMin功能的栈
  3. 关于深度学习的一点理解
  4. The executable was signed with invalid entitlements
  5. 怎样用C语言实现五子棋,C语言实现五子棋
  6. python文件处理seek()方法的参数是_Python 文件(File) seek() 方法
  7. 移动app测试的多样性_快速搞定APP移动端自动化测试
  8. 关于'$ router' 的 undefined问题 ,是不是很痛点?!
  9. html表格的系列代码,HTML系列(八):表格(示例代码)
  10. Atiitt 使用java语言编写sql函数或存储过程
  11. Error:Execution failed for task ‘:app:preDebugAndroidTestBuild’. Conflict with dependency ‘com.andr
  12. Java正则表达式简介及实例
  13. 搜狗输入法 android 历史版本,搜狗输入法旧版
  14. 有效沟通沟通的9大技巧
  15. 通达信波段王指标公式主图_通达信波段操盘主图指标公式
  16. 软件测试自学英语语法,5个能力一流的英语自学APP,赶紧盘它,让你告别零基础...
  17. Matlab:向图中添加注释
  18. linux内核-进程与进程调度
  19. 查找(顺序查找、二分查找、插值查找)
  20. ATH(阿里、腾讯、华为)三家云服务器厂商对比

热门文章

  1. Matlab中的类定义 classdef
  2. 邹碧华用“大数据”选拔优秀法官
  3. Android获取手机信号强度汇总
  4. 敌人的敌人是朋友的问题
  5. 视频:搜狗CEO王小川终于把区块链讲通透了
  6. linux常用命令备忘录
  7. 中专计算机英语期中考试试卷答案,职业中专英语期中考试试卷
  8. 计算机组装与维修期中试卷,计算机组装与维修期中试卷答案
  9. 第三方API对接如何设计接口认证?
  10. word的修订模式右侧会显示修订细节