打印

谁对AD7745比较熟啊?

[复制链接]
1867|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wzx1102k|  楼主 | 2012-10-5 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STM32F0使用IIC总线控制AD7745采集电容值,  写的时候一切正常,比方说写单次测量模式或者连续测量, 通过示波器观看RDY以及IIC波形都很正常, 写那个转换时间间隔,也可以,由此证明硬件电路应该没问题吧, 可是读的时候,无论怎么读,读的数据都是0x07, 就是找不出是哪儿的问题,比方说读电容值的地址是0x01,它是0x07,如果把地址改为读温度的地址0x04去读,它也是0x07,  哪位大虾知道 哪儿出的问题,读部分程序参考:
I2C_AutoEndCmd(I2C2,ENABLE);
  I2C_ReloadCmd(I2C2,DISABLE);
   I2C_NumberOfBytesConfig(I2C2,0X01);
   I2C_MasterRequestConfig(I2C2,I2C_Direction_Transmitter);
    I2C_SlaveAddressConfig(I2C2,0x90);
   I2C_GenerateSTART(I2C2,ENABLE);
  while( I2C_GetITStatus(I2C2,I2C_IT_TXIS)==RESET);
    I2C_SendData(I2C2, 0x04);
/**************读取3字节数据*****************/   
  I2C_NumberOfBytesConfig(I2C2,0X03);
I2C_AutoEndCmd(I2C2,ENABLE);
  I2C_ReloadCmd(I2C2,DISABLE);
  //I2C_NumberOfBytesConfig(I2C2,0X01);
//  I2C_NumberOfBytesConfig(I2C2,0X03);
   I2C_MasterRequestConfig(I2C2,I2C_Direction_Receiver );
    I2C_SlaveAddressConfig(I2C2,0x91);
    I2C_GenerateSTART(I2C2,ENABLE);
      while( I2C_GetITStatus(I2C2,I2C_IT_RXNE)==RESET);
    //发送字节是高字节优先
    recv[cnt]=I2C_ReceiveData(I2C2);
    cnt++;
      while( I2C_GetITStatus(I2C2,I2C_IT_RXNE)==RESET);
    recv[cnt]=I2C_ReceiveData(I2C2);
    cnt++;
     while( I2C_GetITStatus(I2C2,I2C_IT_RXNE)==RESET);
    recv[cnt]=I2C_ReceiveData(I2C2);

相关帖子

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

本版积分规则

9

主题

38

帖子

1

粉丝