电路设计论坛
直播中

向日葵的花季

8年用户 1144经验值
擅长:电源/新能源
私信 关注
[问答]

用Arduino操作AD5933,读取状态寄存器的时候老是读取0x70是什么原因造成的?

最近用Arduino操作AD5933出现了问题,读取状态寄存器的时候 老是读取0x70,有没有知道是什么原因啊。
贴一下我的代码
// AD5933 control
//
#include
void writeAD5933(byte add, byte data)
{
   Wire.beginTransmission(13);  // this chip address is 0001101  13
   Wire.write(add);      
   Wire.write(data);      
   Wire.endTransmission();      // stop transmitting
}
byte readAD5933(byte add)
{
   byte date = 0;
   Wire.beginTransmission(13);  // 00011011
   Wire.write(byte(0xB0));      // Address pointer
   Wire.write(add);             //
   Wire.endTransmission();      // stop transmitting
   Wire.requestFrom(13, 1,true);
   if(Wire.available())   
   {
     date = Wire.read();  // receive high byte (overwrites previous reading)
   }  
   return date;
}
void setup()
{
   Wire.begin();
   Serial.begin(9600);  
}
int temp = 0;
byte templow = 0;
byte temphigh = 1;
byte statusReg = 0;
float temper = 0.0;
void loop()
{
   // writer error.
   // step 1: write temperature test control code to register
   
   delay(1000);
   delay(1000);  
   writeAD9777(byte(0x80), byte(0x90));
    templow = 0x00;
    while(!(templow   0x07))
    {
       templow = readAD5933(byte(0x8F));
       Serial.println(templow,BIN);   // print the reading
       delay(1000);
     }
     Serial.println(templow,BIN);   // print the reading
     Serial.println("success!");    //
   delay(1000);
}
读写寄存器的函数应该是没有问题的,因为我通过读写别的寄存器 ,如起始频率寄存器,频率论扫数寄存器等,先写入数据,再读取数据,发现能够读取之前写入的数据。

                                                               






您好!状态寄存器的含义见数据手册表14。建议对芯片发一个reset命令试一试。

更多回帖

发帖
×
20
完善资料,
赚取积分