电子产品世界 » 论坛首页 » 嵌入式开发 » ARM » AT24C256,EEPROM写数据不稳定?


共3条 1/1 1 跳转至

AT24C256,EEPROM写数据不稳定?

菜鸟
2007-11-19 16:25:45    评分
问DX们.我用的4片AT24C256,EEPROM写数据,怎么每一片写到字节地址BBE和177C时,写入的
数据自动跳到减64字节地方去了.怎么办啊,什么原因?大侠们帮忙啊

 

我用的页写,连续写的4个字节的数据
WP=0;
EEPROMwrite(page_index1*501,0xff);
EEPROMWriteBytes(page_index1*501+1,ID_NO,4);

WP=1;


unsigned int xdata page_index;
unsigned int xdata page_index1;


其他的地址都满正常的,就bbe和177c还有503d三个地址不正常,请问什么原因啊,怎么办啊,
谢谢

 

/*******************************************************************/
void EEPROMWriteBytes(unsigned int dizhi,unsigned char *bf,unsigned char n)
{
unsigned char idata ptr1,ptr2,i;
unsigned int idata dz;
dz=dizhi;
ptr1=dz;
dz=dz>>8;
ptr2=dz;
IICStart();

if(page_index>=0&&page_index<=62)
{
IICSendByte(0xa0);
}
else if(page_index>62&&page_index<=125)
{
IICSendByte(0xa2);
}
else if(page_index>125&&page_index<=188)
{
IICSendByte(0xa4);
}
else if(page_index>188&&page_index<=249)
{
IICSendByte(0xa6);
}

IICRecAck();
IICSendByte(ptr2);
IICRecAck();
IICSendByte(ptr1);
IICRecAck();
for(i=0;i<n;i++)
{
IICSendByte(bf[i]);
IICRecAck();
}
IICStop(); //D′íê
for(i=0;i<5;i++)
{
Delay(250);
Delay(250);
}
//Delay(250);
//Delay(250);
}

 




关键词: AT24C256     EEPROM     数据     不稳定    

高工
2007-11-19 16:53:56    评分
2楼

IIC写完要延时的,时间够吗?查程序,肯定是程序问题。


工程师
2007-11-19 17:12:38    评分
3楼

加校验!


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]