This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] FDC1004-Q1:如何使用 Arduino 中的 I2C 通信对 FDC1004Q 进行编程

Guru**** 2609955 points
Other Parts Discussed in Thread: FDC1004

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/595150/fdc1004-q1-how-to-program-fdc1004q-with-i2c-communication-in-arduino

器件型号:FDC1004-Q1
主题中讨论的其他器件: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位)。 我想知道该程序是否正确。 我想使用我的程序等示例来了解更多详细步骤。