请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LDC1612 大家好,
我尝试将 LDC1612芯片连接到 Arduino 微控制器。
我已按照以下方式编写代码、I2C 读取和写入操作已正确完成。
但我的接收持续为0。 有人能解决我的问题。
#include int LDC = 0x2A; int CH0MSB = 0x00; int CH0LSB = 0x01; int CH1MSB = 0x02; int CH1LSB = 0x03; long 初始化0 = 0; long 初始化1 = 0; unsigned long readChannel0 () { unsigned long val = 0; word c = 0; //字存储16位无符号数字 字 d = 0; c = readValue (LDC、CH0MSB); d = readValue (LDC、CH0LSB); Val = c; val <<= 16; val += d; return val; } unsigned long readChannel1() { unsigned long val = 0; word c = 0;//a word 存储16位无符号数字 字 d = 0; c = readValue (LDC、CH1MSB); d = readValue (LDC、CH1LSB); Val = c; val <= 16; val += d; return val; } void Calibrate () { 草初始0 = readChannel0 (); 草初始1 = readChannel1 (); } 字 readValue (int LDC、int reg) { int a = 0; int b = 0; word value = 0; Wire.beginTransmission(LDC); Wire.write (reg); Froendm (ldc); 2); while (Wire.available () ){ a = Wire.read(); b = Wire.read(); } value = a; value <= 8; value += b; 返回值; } void writeConfig (int LDC、int reg、int MSB、int LSB) { Wire.beginTransmission(LDC); Wire.write (reg); Wire.write (MSB); Wire.write (LSB); Wire.endTransmission (); } void Configuration () { writeConfig (LDC、0x14、0x10、0x02);//clock_dividers_CH0 writeConfig (LDC、0x1E、 0x90、0x00);//drive_curry_CH0 writeConfig (LDC、0x10、0x00、0x0A);//SETTLECOUNT_CH0 writeConfig (LDC、 0x08、0x04、0xD6);//RCOUNT_CH0 writeConfig (LDC、0x15、0x10、0x02);//clock_dividers_CH1 writeConfig (LDC、0x1F、 0x90、0x00);//drive_curry_ch1 writeConfig (LDC、0x11、0x00、0x0A);//SETTLECOUNT_CH1 writeConfig (LDC、 0x09、0x04、0xD6);//RCOUNT_CH1 writeConfig (LDC、0x19、0x00、0x00);//error_config writeConfig (LDC、0x1B、0x82、0x0C);//MUX_CONFIG } void setup () { Wire.begin(); Serial.begin(9600); // writeConfig (LDC、0x1C、0x10、 0x00);//复位器件 延迟(200); //writeConfig (LDC、0x1C、0x00、0x00);//复位设备 configuration (); delay (500); Calibrate (); } void loop () { unsigned long Data0 = readChannel0 (); // unsigned long data1 = readChannel1 (); Serial.println (Data0); // Serial.println (data1); // word deviceid = readChannel1 (0x2A、0x7E); serial.println (deviceid、hex); 字器件= readValue (0x2A、0x7F); serial.println (device、hex);*/ delay (5000); }