|
|
各位大侠:帮我看看我写的T1000的头文件,还有哪里不对,是按照标准格式来写的。谢谢,不吝赐教。
这个是H文件:
//宏定义
#ifndef T1000_H
#define T1000_H
//引用需要的头文件
#if defined(ARDUINO) && (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
//#include "Arduino.h"
#include "Wire.h"
#include "stdio.h"
#include "string.h"
#include "SoftwareSerial.h"
//预定义通讯地址
#define T1000_I2CADDR 0xaa //通讯地址 400KHz
//预定义寄存器地址
#define Register_SOC 0x02 //荷电状态
#define Register_MER 0x03 //最大误差
#define Register_RM 0x04 //剩余容量
#define Register_FCC 0x06 //满充容量
#define Register_VOLT 0x08 //实时电压
#define Register_AI 0x0a //平均电流
#define Register_TEMP 0x0c //外部温度数据
#define Register_CUR 0x10 //实时电流
#define Register_TTE 0x18 //放空时间
#define Register_TTF 0x1a //充满时间
#define Register_PCHG 0x1c //mAh
#define Register_DODOT 0x1e //min时间
#define Register_AE 0x24 //10mW/h
#define Register_AP 0x26 //10mW
#define Register_SERNUM 0x28 //序列码
#define Register_ITEMP 0x2a //内部温度数据
#define Register_CC 0x2c //循环次数
#define Register_SOH 0x2e //健康状态
#define Register_CHGV 0x30 //设计充电电压
#define Register_CHGI 0x32 //设计充电电流
#define Register_DCAP 0x3c //设计容量
#define Register_TRC 0x68 //mAh
#define Register_TFCC 0x6a //mAh
#define Register_QPC 0x6e //mAh
#define CurPos 0 //正向电流标志
#define CurNeg 1 //负向电流标志
#define T1000_VERSION "0.0.1"
//定义变量和声明程序,需要外部调用和访问的就声明成public,不需要外部访问的就声明为private
class T1000
{
public:
unsigned int SOC; //容量百分数输出
unsigned int MER;
unsigned int RM;
unsigned int FCC;
unsigned int VOLT;
unsigned int AI;
unsigned int TEMP;
unsigned int CUR;
unsigned int TTE;
unsigned int TTF;
unsigned int PCHG;
unsigned int DODOT;
unsigned int AE;
unsigned int AP;
unsigned int SERNUM;
unsigned int ITEMP;
unsigned int CC;
unsigned int SOH;
unsigned int CHGV;
unsigned int CHGI;
unsigned int DCAP;
unsigned int TRC;
unsigned int TFCC;
unsigned int QPC;
void Init(); //程序初始化
void Read(); //读取方法
//void ReadData(); //读取并输出数据
private:
unsigned int Data[24]; //数据数组
};
#endif // T1000_H
这个是CPP文件:
#include "T1000.h"
#include <stdio.h>
#include <string.h>
#include <wire.h>
#include "Arduino.h"
//初始化
void T1000::Init()
{
Wire.begin();
}
//读取方法 读取并输出数据
T1000::Read()
{
Wire.beginTransmission(T1000_address);//转换为7位地址
Wire.write(Register_SOC);
Wire.endTransmission();
Wire.requestFrom(T1000_address,2);
SOC_L = Wire.read();//先读低位数据
SOC_H = Wire.read();
SOC = SOC_H<<8 | SOC_L;
//Serial.print("SOC=");
Serial.print(SOC);
//Serial.print("%");
//Serial.print("\n");
delay(1000);
/*
Wire.beginTransmission(BQ34Z100_address);//转换为7位地址
Wire.write(a);
Wire.requestFrom(BQ34Z100_address,2);
#if(Wire.available()<=2);
Register = Wire.read();
#endif
Wire.endTransmission();
ReadData(Register_SOC);
delay(1);
ReadData(Register_MER);
delay(1);
ReadData(Register_RM);
delay(1);
ReadData(Register_FCC);
delay(1);
ReadData(Register_VOLT);
//GetData_VOLT();
delay(1);
ReadData(Register_AI);
//GetData_AI();
delay(1);
ReadData(Register_TEMP);
//GetData_TEMP();
delay(1);
ReadData(Register_CUR);
//GetData_CUR();
delay(1);
ReadData(Register_TTE);
//GetData_TTE();
delay(1);
ReadData(Register_TTF);
//GetData_TTF();
delay(1);
ReadData(Register_PCHG);
//GetData_PCHG();
delay(1);
ReadData(Register_DODT);
//GetData_DODT();
delay(1);
ReadData(Register_AE);
//GetData_AE();
delay(1);
ReadData(Register_AP);
//GetData_AP();
delay(1);
ReadData(Register_SERNUM);
//GetData_SERNUM();
delay(1);
ReadData(Register_ITEM);
//GetData_ITEM();
delay(1);
ReadData(Register_CC);
//GetData_CC();
delay(1);
ReadData(Register_SOH);
//GetData_SOH();
delay(1);
ReadData(Register_CHGV);
//GetData_CHGV();
delay(1);
ReadData(Register_CHGI);
//GetData_CHGI();
delay(1);
ReadData(Register_DACP);
//GetData_DACP();
delay(1);
ReadData(Register_TRC);
//GetData_TRC();
delay(1);
ReadData(Register_TFCC);
//GetData_TFCC();
delay(1);
ReadData(Register_QPC);
//GetData_QPC();
delay(1);
//输出数据
Serial.print(SOC);
Serial.print(MER);
Serial.print(RM);
Serial.print(FCC);
Serial.print(VOLT);
Serial.print(AI);
Serial.print(TEMP);
Serial.print(CUR);
Serial.print(TTE);
Serial.print(TTF);
Serial.print(PCHG);
Serial.print(DODT);
Serial.print(AE);
Serial.print(AP);
Serial.print(SERNUM);
Serial.print(ITEM);
Serial.print(CC);
Serial.print(SOH);
Serial.print(CHGV);
Serial.print(CHGI);
Serial.print(DACP);
Serial.print(TRC);
Serial.print(TFCC);
Serial.print(QPC);
*/
}
这个是KEY文件:
#######################################
# Syntax Coloring Map For 你的类名
#######################################
#######################################
# Datatypes (KEYWORD1) 数据类型关键字
#######################################
BQ34Z100G1 KEYWORD1
#######################################
# Methods and Functions (KEYWORD2) 方法类型关键字
#######################################
Init KEYWORD2
Read KEYWORD2
ReadData KEYWORD2
GetData KEYWORD2
#######################################
# Constants (LITERAL1) 常量类型关键字
#######################################
SOC LITERAL1
MER LITERAL1
RM LITERAL1
FCC LITERAL1
VOLT LITERAL1
AI LITERAL1
TEMP LITERAL1
CUR LITERAL1
TTE LITERAL1
TTF LITERAL1
PCHG LITERAL1
DODT LITERAL1
AE LITERAL1
AP LITERAL1
SERNUM LITERAL1
ITEM LITERAL1
CC LITERAL1
SOH LITERAL1
CHGV LITERAL1
CHGI LITERAL1
DACP LITERAL1
TRC LITERAL1
TFCC LITERAL1
QPC LITERAL1
很是困惑。 |
|