打印

求助:MAX7349 键盘芯片 读取始终为FF.

[复制链接]
2012|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nbsmaps|  楼主 | 2011-7-21 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MAX7349键盘芯片,用IIC写放时,地址为:0x70,芯片已有应答位返回过来.而中断引脚INT脚,始终为:1.6V的高电平(联单片机后为:4V) 用IIC读芯片的内容,不管哪个地址,返回的均为:FF.   7349的ROW引脚,与COL引脚均输出:1.6V.
请教各位高手,可能我哪里出了问题了!试来试去,板子焊坏了十多块了,芯片也搞了十多个了.故可以排除芯片原因(这么多芯片不可能全是同样故障吧).附件为芯片资料,下面为本人程序:

void main(void)
{uchar temp;                                     //定义临时变量,检查结果寄存器  
  bit  bROK;      
   temp=0;
  bROK=INT;
  i2c_start();
  bROK=sendbyte(0x70);                   //执行后BROK=0;
  bROK=sendbyte(0x01);
  bROK=sendbyte(0x01);
  i2c_stop();
  
i2c_start();
  bROK=sendbyte(0x70);
  bROK=sendbyte(0x03);
  bROK=sendbyte(0x01);
  i2c_stop();
  
i2c_start();
  bROK=sendbyte(0x70);
  bROK=sendbyte(0x02);
  bROK=sendbyte(0x0);
  i2c_stop();
  


  //读取存储的方向值

while(1)
    {bROK=INT;
     i2c_start();
bROK=sendbyte(0x70);          //发送写地址
bROK=sendbyte(0x03);          //初始化03字节
i2c_start();                            //重新启动IIC
bROK=sendbyte(0x71);           //设定为读
temp=rcvbyte();      //接收到的始终为:FFH
Askbit();
temp=rcvbyte();      
Askbit();
temp=rcvbyte();      
Askbit();
temp=rcvbyte();      
NoAskbit();
i2c_stop();
     temp=0;
     
     temp=0;
     
     temp=0;
     
     }
    }

MAX7347-MAX7349_cn.pdf

824.2 KB

相关帖子

沙发
nbsmaps|  楼主 | 2011-7-21 12:04 | 只看该作者
IIC接收程序.此程序在接收24C01没问题

*----------------------------------------------------------------*/
/*名称:RCVBYTE
/*功能:字节数据接收子程序--->从被控器件接收一个字节数据
/*     然后根据主程序要求发送应答位,接收的数据由函数返回
//---------------------------------------------------------------*/
uchar rcvbyte(void)
  { uchar i,j;
    SDA=1;                          /*SDA置高*/
    for(i=0;i<8;i++)                /*循环8次*/
     { SCL=0;                       /*时钟线置为0*/
       NOP_1uS;
       j=j<<1;
       SCL=1;                       /*时钟置为1*/
       NOP_1uS;
       if(SDA==1)                     
        j=j|0x01;                   /*SDA为1,向J的最低位写1*/
       else
        j=j&0xfe;                   /*SDA为0,向J的最低位写0*/
      }
            SCL=0;
     return(j);                     
   }

使用特权

评论回复
板凳
nbsmaps|  楼主 | 2011-7-21 16:45 | 只看该作者
已解决!结论:程序要连续运行,不能用仿真器单步.即禁用了了IIC超时功能也没有.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

268

帖子

3

粉丝