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

* 107103: 敬请高手解答LPC2131 I2C存储器问题

   天上的鸟 
天上的鸟发表的帖子 

 敬请高手解答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

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:关于LCD请教一下:我用三星的一款Drive为S6B33B0A芯片的LCD屏,为何我读出的STATU
[下一篇帖子]:顶用途:    -:可用于各种二十个点以内的控制系统,可控制气