极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14534|回复: 0

关于编写arduino格式的T1000的头文件的疑惑

[复制链接]
发表于 2017-3-6 11:35:22 | 显示全部楼层 |阅读模式
各位大侠:帮我看看我写的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

很是困惑。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 07:16 , Processed in 0.033678 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表