主题中讨论的其他器件:FDC1004
大家好、我正在学习 Arduino 中的 I2C "Fdc1004q"通信。 此数据表建议使用器件:
1.配置测量值(有关详细信息、请参阅测量配置)。
2.触发测量集(有关详细信息、请参阅触发测量)。
3.等待测量完成(有关详细信息、请参阅等待测量完成)。
4.读取测量数据(有关详细信息、请参阅读取测量结果)。
我认为 Arduino 中的程序如下所示。
#include
#define FDC1004 (0xA0)
#define MSB_Register (0x00)
#define LSB_Register (0x01)
字节值[4];
字符输出[512];
长 MSB;
长 LSB;
void setup(){
Wire.begin ();
Serial.begin(9600);
//测量配置
Wire.beginTransmission(FDC1004);
Wire.begin (0x08);/CONF_MEAS1寄存器
Wire.write (0x1C00);//复位
wire.endTransmission ();
Wire.beginTransmission(FDC1004);
Wire.write (0x08);
Wire.write (0x1000);// CHA;CAPDAC 偏移最小值
wire.endTransmission ();
//触发测量
Wire.beginTransmission(FDC1004);
Wire.WRITE (0x0C);//FDC 寄存器说明
Wire.write (0x0000);//复位
wire.endTransmission ();
Wire.beginTransmission(FDC1004);
Wire.write (0x0C);
Wire.write (0x0580);//rate 100s/s;meas _1;
wire.endTransmission ();
//等待测量完成
延迟(500);
//Menulis MSB dan LSB
Wire.beginTransmission(FDC1004);
Wire.write (MSB_Register);
wire.endTransmission ();
Wire.beginTransmission(FDC1004);
Wire.write (LSB_Register);
wire.endTransmission ();
}
void loop(){
Wire.beginTransmission(FDC1004);
Wire.write (MSB_Register);
wire.endTransmission ();
Wire.write (LSB_Register);
wire.endTransmission ();
Wire.beginTransmission(FDC1004);
Wire.write (0xA1);
wire.endTransmission ();
Wire.RequestFrom (FDC1004、2);
wire.endTransmission ();
if (Wire.available ()<=2){
MSB= Wire.Read();
LSB= Wire.read();
}
serial.print ("msb=");
serial.println (msb、bin);
serial.print ("lsb=");
serial.println (LSB、bin);
延迟(100);
}
但 MSB 和 LSB 的输出为111111.... (24位)。 我想知道该程序是否正确。 我想使用我的程序等示例来了解更多详细步骤。