<pre name="code" class="cpp">#include "BQData.h"
#define UV_THRESH_BASE 4096
/*****************************
file:BQData.c
decription:
1.采集BQ76930的14位ADC的增益和偏置电压:void get_offset(void)
2.采集单体电压:void Get_Batteryx(void),其中x取值1-8;
3.BQ76930初始化 void BQ_config(void)
4.读取BQ76930寄存器值: void readbqstate(void)
5.
******************************/
/***********************
fuction:void get_offset(void)
************************/
void get_offset(void)
{
byte gain[2];
byte Gain;
gain[0]=IIC_read_one_byte(0x50);
gain[1]=IIC_read_one_byte(0x59);
Gain = ((gain[0]&0x0c)<<1)+((gain[1]&0xe0)>>5);
ADC_offset=IIC_read_one_byte(0x51);
AD_Gain = 365+Gain;
}
/****************************************
fuction: void Get_Battery1(void)
description:获取第1、5号单体电池电压
Parameters:batterylval[0],battery1val[1];
******************************************/
void Get_Battery1(void)
{
byte readbattbuf[2];
dword batteryval1;
readbattbuf[1] = IIC_read_one_byte(0x0c);
readbattbuf[0] = IIC_read_one_byte(0x0d);
batteryval1= readbattbuf[1];
batteryval1= (batteryval1 << 8) |readbattbuf[0];
batteryval1=((batteryval1*AD_Gain)/1000)+ADC_offset;//单体电压计算公式,第1串
battery1val[1]=(byte)(batteryval1 >> 8);
battery1val[0]=(byte)(batteryval1);
}
/****************************************
fuction: void Get_Battery2(void)
description:获取第2号单体电池电压
Parameters:battery2val[0],battery2val[1];
******************************************/
void Get_Battery2(void)
{
byte readbattbuf[2];
dword batteryval1;
readbattbuf[1]=IIC_read_one_byte(0x0e);
readbattbuf[0]=IIC_read_one_byte(0x0f);
batteryval1= readbattbuf[1];
batteryval1= (batteryval1 << 8) |readbattbuf[0];
batteryval1=((batteryval1*AD_Gain)/1000)+ADC_offset;//单体电压计算公式,第2串
battery2val[1]=(byte)(battery
单片机C语言代码-代码格式
最新推荐文章于 2024-07-26 10:31:18 发布
这段代码详细展示了如何使用C语言在单片机上操作BQ76930芯片,实现电池电压的采集、计算和管理。包括获取偏置和增益、读取单体电池电压、BQ76930初始化、读取寄存器值等功能函数。
摘要由CSDN通过智能技术生成