资源简介
STM32用IIC总线读取BQ76930芯片电压电流温度值,支持20串级联采集
1、6节锂电池电压,电流,温度,SOC测量
2、实现过压,欠压,过流,短路保护,高温保护,低温保护;
3、BQ76930支持芯片内部被动均衡。
1、6节锂电池电压,电流,温度,SOC测量
2、实现过压,欠压,过流,短路保护,高温保护,低温保护;
3、BQ76930支持芯片内部被动均衡。
代码片段和文件信息
#include “BQ76930.h“
#include “SYSTICK.h“
#include “i2c.h“
#include “i2c1.h“
#include “i2c2.h“
#include “usart.h“
#include “math.h“
#include “string.h“
#include “IO_CTRL.h“
#include “usart2.h“
/*****************************
file:BQData.c
decription:
1.采集BQ76930的14位ADC的增益和偏置电压:void get_offset(void)
2.采集单体电压:void Get_Batteryx(void)其中x取值1-10;
3.BQ76930初始化 void BQ_config(void)
4.读取BQ76930寄存器值: void readbqstate(void)
5.
******************************/
/***********************
fuction:void get_offset(void)
************************/
int ADC_offsetGAIN;
float ADC_GAIN = 0;
void Get_offset(void)
{
unsigned char gain[2];
gain[0]=IIC1_read_one_byte(ADCGAIN1);//ADC_GAIN1
gain[1]=IIC1_read_one_byte(ADCGAIN2);//ADC_GAIN2
ADC_GAIN = ((gain[0]&0x0c)<<1)+((gain[1]&0xe0)>>5);//12uV
ADC_offset=IIC1_read_one_byte(ADCOFFSET);//45mV
GAIN = 365+ADC_GAIN;//GAIN=377uV
}
/****************************************
fuction: void Get_Battery1(void)
description:获取第1号单体电池电压
Parameters:batterylval[0]battery1val[1];
******************************************/
void BQ76930_config(void)
{
WAKE_ALL_DEVICE();
BQ_1_2_config();
Get_offset();
OV_UV_1_2_PROTECT();
OCD_SCD_PROTECT();
Open_DSG_CHG();
IIC1_write_one_byte_CRC(SYS_STAT0xFF);
}
void BQ_1_2_config(void)
{
BQ_1_config();//
}
void OV_UV_1_2_PROTECT(void)
{
OV_UV_1_PROTECT();
//OV_UV_2_PROTECT();
}
void WAKE_ALL_DEVICE(void)
{
MCU_D_POWER_ONOFF(1);
MCU_KZ_QB_POWER_ONOFF(1);
MCU_WAKE_BQ_ONOFF(1);
delay_ms(100);
MCU_WAKE_BQ_ONOFF(0);
}
void SHIP_ALL_DEVICE(void)
{
IIC1_write_one_byte_CRC(SYS_STAT0xFF);
IIC2_write_one_byte_CRC(SYS_STAT0xFF);
SHIP_1_BQ769();
SHIP_2_BQ769();
MCU_KZ_QB_POWER_ONOFF(0);
//MCU_D_POWER_ONOFF(0);
}
int Batteryval[50]={0};
unsigned char shang[50]={0xAA0x01};
unsigned char shang1[50]={0xAA0x02};
void Get_Battery1(void)
{
unsigned int readbattbuf[2];
unsigned int battery1val[2];
short batteryval1;
readbattbuf[1] = IIC1_read_one_byte(0x0c);
readbattbuf[0] = IIC1_read_one_byte(0x0d);
batteryval1= readbattbuf[1];
batteryval1= (batteryval1 << 8) |readbattbuf[0];
batteryval1=((batteryval1*GAIN)/1000)+ADC_offset;//单体电压计算公式,第1串
Batteryval[0]=batteryval1;
battery1val[1]=(char)(batteryval1 >> 8);
battery1val[0]=(char)(batteryval1 & 0x00FF);
shang[2]=battery1val[1];
shang[3]=battery1val[0];
//printf(“%d\n“batteryval1);
}
/****************************************
fuction: void Get_Battery2(void)
description:获取第2号单体电池电压
Parameters:battery2val[0]battery2val[1];
******************************************/
void Get_Battery2(void)
{
char readbattbuf[2];
int batteryval2;
short battery2val[2];
readbattbuf[1]=IIC1_read_one_byte(0x0e);
readbattbuf[0]=IIC1_read_one_byte(0x0f);
batteryval2= readbattbuf[1];
batteryval2= (batteryval2 <<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36542 2019-12-09 22:46 BMS\BMS——测试程序\BMS_s930\BSP\BQ76930.c
文件 4532 2020-01-03 21:35 BMS\BMS——测试程序\BMS_s930\BSP\BQ76930.h
文件 7678 2019-04-02 15:38 BMS\BMS——测试程序\BMS_s930\BSP\i2c.c
文件 2076 2019-03-28 11:44 BMS\BMS——测试程序\BMS_s930\BSP\i2c.h
文件 7704 2019-04-08 12:55 BMS\BMS——测试程序\BMS_s930\BSP\i2c1.c
文件 2004 2020-01-07 20:03 BMS\BMS——测试程序\BMS_s930\BSP\i2c1.h
文件 7334 2019-04-07 13:14 BMS\BMS——测试程序\BMS_s930\BSP\i2c2.c
文件 1965 2019-04-07 13:14 BMS\BMS——测试程序\BMS_s930\BSP\i2c2.h
文件 4371 2019-11-21 23:15 BMS\BMS——测试程序\BMS_s930\BSP\IO_CTRL.c
文件 2530 2019-11-18 20:57 BMS\BMS——测试程序\BMS_s930\BSP\IO_CTRL.h
文件 2488 2019-04-17 14:35 BMS\BMS——测试程序\BMS_s930\BSP\led.c
文件 1142 2019-04-17 09:17 BMS\BMS——测试程序\BMS_s930\BSP\led.h
文件 3374 2019-04-25 11:58 BMS\BMS——测试程序\BMS_s930\BSP\spi.c
文件 746 2019-04-25 10:10 BMS\BMS——测试程序\BMS_s930\BSP\spi.h
文件 1088 2019-04-17 13:14 BMS\BMS——测试程序\BMS_s930\BSP\systick.c
文件 167 2019-04-16 15:58 BMS\BMS——测试程序\BMS_s930\BSP\systick.h
文件 6952 2019-04-19 11:40 BMS\BMS——测试程序\BMS_s930\BSP\timer.c
文件 237 2019-04-17 17:37 BMS\BMS——测试程序\BMS_s930\BSP\timer.h
文件 9380 2019-07-06 11:55 BMS\BMS——测试程序\BMS_s930\BSP\usart.c
文件 300 2019-09-24 11:18 BMS\BMS——测试程序\BMS_s930\BSP\usart.h
文件 15183 2019-09-24 22:26 BMS\BMS——测试程序\BMS_s930\BSP\usart2.c
文件 2384 2018-08-14 08:42 BMS\BMS——测试程序\BMS_s930\BSP\usart2.h
文件 9502 2019-04-25 11:19 BMS\BMS——测试程序\BMS_s930\BSP\w25qxx.c
文件 2579 2019-04-25 10:14 BMS\BMS——测试程序\BMS_s930\BSP\w25qxx.h
文件 1120 2012-09-13 21:57 BMS\BMS——测试程序\BMS_s930\BSP\wdg.c
文件 601 2019-04-19 11:33 BMS\BMS——测试程序\BMS_s930\BSP\wdg.h
文件 1354 2011-04-04 19:03 BMS\BMS——测试程序\BMS_s930\config\stm32f10x_flash.icf
文件 1422 2011-04-04 19:03 BMS\BMS——测试程序\BMS_s930\config\stm32f10x_flash_extsram.icf
文件 1355 2011-04-04 19:03 BMS\BMS——测试程序\BMS_s930\config\stm32f10x_nor.icf
文件 1354 2011-04-04 19:03 BMS\BMS——测试程序\BMS_s930\config\stm32f10x_ram.icf
............此处省略337个文件信息
- 上一篇:xfeatures2d.rar
- 下一篇:智能家居app
相关资源
- STM32F030从机中断接收的iic代码,附带
- STM32使用模拟IIC实现24C02读取
- 0.96OLED_C51系列_IIC应答_例程
- (带有源代码)基于FPGA的模拟I2C接口
- zw_OLED-STM32F4-IIC.zip
- STM32硬件IIC主机例程以读写EEPROM为例
- stm32单片机IIC通讯采集sht20温湿度传感
- 基于IIC的OLED显示程序
- OLED程序例程(STM32_OLED(C8T6))
- stm32f103iic读取AT24XX全系eeprom
- fpga与eeprom通信
- STM32用IIC通信实现OLED显示程序代码及
- ATTINY24A 接收IIC程序控制直流电机
- 基于STM32F103控制16PWM路舵机驱动板PC
- STM8L 硬件IIC主机
- DTH11温湿度显示在IIC_OLED上,好用,自
- STM32 IIC驱动DRV10983
- STM32--IIC通信两个JY-901模块
- WiiCCD Master 3.51 + Wbfs Master 2.15
- 基于FPGA的pcf8591的AD采样程序verilog
- WiiCCD_Master_3.51_+_Wbfs_Master_2.16.rar
- 关于七针0.96寸OLED使用IIC接口的说明
- Verilog IIC读MPU6050-融合滤波-单轴-代码
- STM8程序IAR环境
- 0.96寸OLED+原子STM32F4+IIC通信
- FPGA实现IIC通信.zip
- 好几种接口的verilog程序,包括caneth
- IIC ip核 一个是ALTERA官网的 有一个是网
- BH1750FVI STM32F103 HAL库 硬件IIC例程
- STM32F103系列采用模拟IIC方式驱动了B
评论
共有 条评论