单片机C语言代码-代码格式

这段代码详细展示了如何使用C语言在单片机上操作BQ76930芯片,实现电池电压的采集、计算和管理。包括获取偏置和增益、读取单体电池电压、BQ76930初始化、读取寄存器值等功能函数。
摘要由CSDN通过智能技术生成
<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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值