敬请高手解答LPC2131 I2C存储器问题
[U]今天做毕业设计的时候在I2C存储器的应用方面遇到一个问题
while((IO0PIN&KEY4)==0)
{
for(i=0;i <50000;i++);
if((IO0PIN&KEY4)!=0)
{
SendTimeRtc();
I2C_WriteNByte(CAT1025, ONE_BYTE_SUBA, 0x64+d1*8,DATA_BUF, 8);(向CAT1025中写入时钟)
DelayNS(10);
d1=d1+1;
I2C_WriteNByte(CAT1025, ONE_BYTE_SUBA, 0x64+0x30,&d1, 1);
DelayNS(10);
// 清零数据缓冲区,防止出错
for (i=0; i <8; i++)
DATA_BUF[i] = 0;
d2=0;
// 读回刚才写入的数据
I2C_ReadNByte(CAT1025, ONE_BYTE_SUBA, [color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#FAEBD7][color=#DC143C]0x64[/color][/color][/color][/color][/color][/color][/color][/color][/color]+(d1-1)*8, TMP_BUF, 8);(读取时钟)
I2C_ReadNByte(CAT1025, ONE_BYTE_SUBA, 0x64+0x30, &d2, 1);
for(i=0;i <8;i++)
{
UART0_SendByte(TMP_BUF[i]);
}
if(d2 <10) UART0_SendByte(d2+0x30);
else
{
UART0_SendByte(d2/10+0x30);
UART0_SendByte(d2%10+0x30);
}
}}
发送时钟的时候,第1、3、5、7、9...次正常
但是在2、4、6、8、10...时就出现问题
若将程序中的地址偏移量改为0XC8,则发送正常
不知是何缘故?
敬请解答!
谢谢!!
发表时间:2007年6月12日17:59:28