谁对AD7745比较熟啊?

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

9

主题

38

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部