EEPROM CAT24CXX实现分页读、写数据
目录
1、CAT24CXX分页读、写数据原理
2、代码实现
近日驱动CAT24C08时遇到这样一个问题:
通常配置数据写入到EEPROM,256个字节基本可满足需求,最近做的一个项目数据量较大,且不确定以后时候还需要增加保存的数据。所以打算使用分页读、写数据,使不同类型的配置数据空间较大一些。
本项目EEPROM地址使用如下所示:
- 配置1数据:0Byte~1000Byte;
- 配置2数据:1001Byte~1100Byte;
- 配置3数据:1101Byte~1200Byte;
- 配置4数据:1201Byte~1300Byte。
这样该如何实现呢?
1、CAT24CXX分页读、写数据原理
本博文以CAT24C08为例进行讲解。
如何实现CAT24C08分页读、写数据,datasheet中有说明很清楚。
CAT24C08,共有8KB的存储空间,可通过A2、a9和a8,来选择设备地址区域,也就是=8个地址区域,每个地址区域有64页,每页16个字节, 故:64X16X8=8192B,也就是8KB。
A2、a9和a8选择地址区域,数值范围如下表所示:
A2 | a9 | a8 | |
0 | 0 | 0 | 地址区域0 |
0 | 0 | 1 | 地址区域1 |
0 | 1 | 0 | 地址区域2 |
0 | 1 | 1 | 地址区域3 |
1 | 0 | 0 | 地址区域4 |
1 | 0 | 1 | 地址区域5 |
1 | 1 | 0 | 地址区域6 |
1 | 1 | 1 | 地址区域7 |
所以,可将配置数据按照以下地址块分配:
地址区域0 |
|
地址区域1 |
|
2、代码实现
本代码驱动过程并没有什么变化,重点在于处理地址位,一般情况下我们默认使用地址区域0就满足开发需求,现在需要在读、写地址位基础上按位或地址区域。
使用地址区域0的时候,可默认地址位为:0XA0,读、写数据,地址如下所示:
uint8_t dev_addr_r = dev_addr | 0x01;uint8_t dev_addr_w = dev_addr & 0xFE;
使用地址区域1的时候,可默认地址位为:0XA2,读、写数据,地址如下所示:
uint8_t dev_addr_r = dev_addr | 0x01;uint8_t dev_addr_w = dev_addr & 0xFE;
以此类推,剩下区域都可以如此操作,然后就可以一页页读写数据了。
EEPROM CAT24CXX实现分页读、写数据相关推荐
- HDFS 读/写数据流程
1. HDFS 写数据流程 客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件, NameNode 检查目标文件是否已存在,父目录是否存在: NameNo ...
- 用java实现在txt文本中写数据和读数据
向文本中写数据,一般这些数据我们用来做自动化测试.通过我们制定的一些生成数据的规则,能够快速写数据到文本中. 下面是写数据到txt文本(当然我们可以根据自己的需要写到doc.docx.xlx.xlsx ...
- 杭电Matlab与仿真-MATLAB基本语法(二)-数据文件的读/写操作
数据文件的读/写操作 实验目的 实验内容与要求 实验程序与结果 实验目的 学会matlab数据输入与输出基本操作: 熟悉matlab各种文件的输入输出方法,了解常用的图片及音频文件的输入输出: 掌握用 ...
- Tiva单片机——麦克风声音数据的储存/回放(Flash读/写)
Tiva单片机--麦克风声音数据的储存/回放(Flash读/写) 一.整体介绍 1. 第一次设计 2. 第二次设计 3. 最终实现情况 二.代码的分段解读 1. 头函数 2. 宏定义 3. Flash ...
- spring批量写入mysql数据库_快速使用组件-spring batch(3)读文件数据到数据库
tags: springbatch 1.引言 上一篇文章<快速了解组件-spring batch(2)之helloworld>对Spring Batch进行了入门级的开发,也对基本的组件有 ...
- pymatgen读/写各种文件
PS:请见文末的打赏选项 pymatgen读/写各种文件 pymatgen是材料大数据计算的必备程序包了,其也作为API与materials project对接,可以批量下载自己想要的材料结构.性质, ...
- 写数据到文件注意事项write方法
[问题1] 使用FileOutputStream类写数据到文件中,本来是很简单的实现,但就是生成的文件与原文件大小不一样,排查了一整天,才找到问题原因所在, writer = new FileOutp ...
- Netty源码分析第7章(编码器和写数据)----第2节: MessageToByteEncoder
Netty源码分析第7章(编码器和写数据)---->第2节: MessageToByteEncoder Netty源码分析第七章: Netty源码分析 第二节: MessageToByteEnc ...
- 易语言逐条读access数据_易语言对ACCESS数据库基础(适合新手)
学习使用数据库,难免要使用SQL语句.外部数据库使用SQL语句可以快速地完成对数据库的种种操作,如:查询.修改.插入记录.删除记录等.至于更多的,比如:创建表.删除表.加密数据等等,等我们能够比较熟练 ...
- Java17-day08【File(创建和删除文件、判断和获取功能、遍历目录)、IO流(字节流写数据、异常处理、字节流读数据、复制文本文件、复制图片)】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
最新文章
- JavaScript Math和Number对象
- node process.env
- 分区裁剪 oracle,[讨论]分区表并行和剪裁的困惑
- 华为java8_Java8 Stream
- Meteor项目实战 -- Next 0.0.2
- java 获取注解_java 注解annotation的使用,以及反射如何获取注解
- 英国首相用华为P20 Pro自拍引热议,网友:真香,比炸鱼和薯条还香
- Redis分布式锁为什么要设置超时时间
- 四个开放源代码审查工具【图文】
- firefox插件开发和调试
- 免费软件不比付费软件逊色半分之94款免费软件
- Relative Ranks问题及解法
- 邓俊辉算法训练营第三期(带完整课件)
- mysql 合并两个update_如何将多条update语句合并为一条
- 企业微信自动添加手机好友工具
- 如何查询中文期刊影响因子
- android获取imei需要read_phone_state吗,Firemonkey android read_phone_state运行时权限要求获取IMEI...
- 嵌入式系统词汇表(Embedded System Vocabulary List)
- 大型多人在线游戏服务器架构设计
- 邪恶花网站邪恶花_指标:良好VS邪恶
热门文章
- 监控系统首选DNS服务器,监控windows DNS服务器
- Excel去除重复项的几种方法
- openwrt 软路由负载均衡
- 安庆集团-冲刺日志(第六天)
- Pytorch拟合心形函数
- http://nianjian.xiaze.com/tags.php?/%E5%B9%BF%E5%B7%9E%E7%BB%8F%E6%B5%8E%E5%B9%B4%E9%89%B4/1/1360241
- 无人驾驶汽车系统入门(十五)——ROS入门与实践(2)
- Android学习日记(yzy):SQLite数据库和baseAdapter
- 向量的数量函数的导数
- 解决:香橙派orangepi3lts网口用不了 网口灯不亮 没反应