|
/*******************************************************************
从AT24Cxx读一页数据
第一个字节地址置于寄存器ADDR中,数据置于BUFFER中,
字节计数器置于寄存器COUNT中。
返回为0表明总线无效或器件无应答。
*******************************************************************/
uint8 Read_Block_64(uint16 addr,uint8 *buffer,uint8 count)
{
uint8 a,b,c,i;
do{
start_64();
a=Out_Byte_64(0xa0);
b=Out_Byte_64((uint8)(addr>>8));
c=Out_Byte_64((uint8)addr);
}while((a==0)|(b==0)|(c==0));
/******发送读命令及接收数据******/
do{ceshi();
for(i=0;i<200;i++)
delay_us(180);
for(i=0;i<200;i++)
delay_us(180);
start_64();//第二次开始启动读操作 程序死在这里
a=Out_Byte_64(0xa1);
}while(a==0);ceshi();
for(;count>0;--count)
{
*buffer=In_Byte_64();
++buffer;
}
stop_64();
return 1;
}
我的程序在运行到第二次开始启动读操作时老是停在那里,a=Out_Byte_64(0xa1);后得不到应答信号,请高手为我指点一下!
|
|