请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ24297EVM-021 您好!
我使用此套件为电池充电、但流耗仅为11mA。 我已经更改了寄存器的值以获得精确的电流、但仍然没有获得任何输出。
这是我的代码。
#include
//#define ADDR_Ax 0b101 // A2、A1、A0
//#define ADDR (0b1010 <<3)+
#define ADDR 0x6B
void setup(){
//将您的设置代码放在这里,运行一次:
Serial.begin(9600);
serial.print ("设置中");
Wire.begin();
writeI2CByte (0x00、0b00110000);
writeI2CByte (0x01、0b00011011);
writeI2CByte (0x02、0b01100000);
writeI2CByte (0x03、0b00010001);
writeI2CByte (0x04、0b10110010);
writeI2CByte (0x05、0b10001100);
writeI2CByte (0x06、0b01110011);
writeI2CByte (0x07、0b01001011);
}
void loop(){
//将主代码放在此处,重复运行:
readI2CByte (0x00、1);
延迟(3000);
// Serial.println (“in loop”);
readI2CByte (0x01、1);
延迟(3000);
readI2CByte (0x02、1);
延迟(3000);
readI2CByte (0x03、1);
延迟(3000);
readI2CByte (0x04、1);
延迟(3000);
readI2CByte (0x05、1);
延迟(3000);
readI2CByte (0x06、1);
延迟(3000);
readI2CByte (0x07、1);
延迟(3000);
readI2CByte (0x08、1);
延迟(3000);
readI2CByte (0x09、1);
延迟(3000);
// readI2CByte (0x02);
// writeI2CByte (0x05、0x8C);
// readI2CByte (0x02);
// 延迟(3000);
}
void writeI2CByte (byte data_addr、byte data){
Wire.beginTransmission(ADDR);
wire.write (data_addr);
Wire.write (data);
wire.endTransmission ();
}
字节 readI2CByte (byte data_addr、unsigned int size){
字节数据=空;
Wire.beginTransmission(ADDR);
wire.write (data_addr);
wire.endTransmission ();
Wire.requestFrom (ADDR、SIZE);//检索1个返回的字节
延迟(1);
serial.print ("Read REG =");
serial.print (data_addr);
while (Wire.available ()){
数据= Wire.read();
serial.print ("读取值=");
serial.println (data、bin);
}
返回数据;
}
请提供此问题的解决方案。
谢谢