导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→敬请高手解答LPC2131 I2C存储器问题[天上的鸟]

 *第49752篇: 敬请高手解答LPC2131 I2C存储器问题

  
楼 主:天上的鸟 2007年6月12日17:59
 敬请高手解答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,则发送正常
不知是何缘故?
敬请解答!
谢谢!!
 


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:关于LCD

[下一篇主题]:读键的程序为什么不对?