金牌会员
 
- 积分
- 1255
- 金钱
- 1255
- 注册时间
- 2017-11-18
- 在线时间
- 296 小时
|
2金钱
最近在接触AT24C02相关的知识,目前底层通过IIC方式对它的读写函数是可以理解的,但是就在AT24C02的使用上有疑问,发出来请有使用经验的前辈指点一下。
以下是我个人的理解:
1.AT24C02是用来保存一些数据比如配置的,在使用上就是一块内存,我可不可以把它看做一个数组来使用呢?这块内存的地址就是像数组元素下标一样
2.在使用时候是不是说我在保存或者读取数据时候要指定数据保存或者读取的地址呢?举例如下:
假设我要保存员工名字和员工号,保存名字和员工号时候指定地址如下:
#define Name_ADDRESS_1 0x0001
#define Number_ADDRESS_1 0x00a0
其他员工类似,每增加一个员工就要指定新的保存地址....我觉得是这样
3.保存员工数据时候:
Write_Data(*Name_buffer, Name_ADDRESS_1, len);
Write_Data(*Number_buffer, Number_ADDRESS_1, len);
读取员工数据时候:
Read_Data(*Name_buffer, Name_ADDRESS_1, len);
Read_Data(*Number_buffer, Number_ADDRESS_1, len);
要读取哪一个员工数据,就是要给出对应员工数据在AT24C02的中地址,我这样理解对吗??
烦请有经验的前辈指点一下,谢谢!
|
最佳答案
查看完整内容[请看2#楼]
结构体你了解下 一个员工的所有数据封装个结构体,这样一次写入读取就好了,读取时候为了加快检索速度可以先读取员工号的偏移,序号符合在整体读取,同事最后保留几个字节做flag,标记那些位置有数据,那些没有数据,没有数据的就不读取了
例如每个员工的所有信息给20个字节,20个字节的前俩字节是序号 2402 256字节能存12条 剩余16字节16*8=128位远远>12条信息量 用最后12个位标记前240个字节12条数据那些事有用的,那些是 ...
|