I2CROM数据删除问题??

[复制链接]
2205|2
 楼主| soso 发表于 2008-8-6 16:33 | 显示全部楼层 |阅读模式
高手路过请帮个忙。。我不懂。。。<br />&nbsp;&nbsp;&nbsp;我使用AT24C512(64K&nbsp;I2CEPROM)存储数据,,但我要对其内部数据进行删除、添加。但我对AT24C512中间数据删除后,其空间就产生不连续了。我这里规定数据要连续。怎么办。。大家有没有C51代码??<br />谢谢了
太阳之母 发表于 2008-8-6 21:52 | 显示全部楼层

嘿嘿

数据搬家就是了嘛!
太阳之母 发表于 2008-8-6 22:08 | 显示全部楼层

嘿嘿

好象这个片子不需要单独的删除操作吧?<br />假定你的读写函数是以字节为单位的,分别是:<br />char&nbsp;AT24C512_Byte_Read(unsigned&nbsp;int&nbsp;Addr);//从地址Addr处读回一个字节<br />void&nbsp;AT24C512_Byte_Write(unsigned&nbsp;int&nbsp;Addr,&nbsp;char&nbsp;Data);//将字节数据Data写到地址Addr处<br /><br />删除函数就可以是:<br />//---------------------------------------------------------------<br />//函数:AT24C512_Erase(unsigned&nbsp;int&nbsp;Addr,&nbsp;unsigned&nbsp;int&nbsp;EraseNum)<br />//参数:Addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;从此地址开始删除;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EraseNum&nbsp;=&nbsp;被删除的单元数;<br />//注意:示例代码,未对地址做边界检查;<br />//---------------------------------------------------------------<br />void&nbsp;AT24C512_Erase(unsigned&nbsp;int&nbsp;Addr,&nbsp;unsigned&nbsp;int&nbsp;EraseNum)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=Addr;&nbsp;i&ltAddr+EraseNum;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT24C512_Byte_Write(i,&nbsp;AT24C512_Byte_Read(i+EraseNum));<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

0

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部