91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-18
  • 語言: 其他
  • 標簽: DS2782??

資源簡介

DS2782測量可充電鋰離子和鋰離子聚合物電池的電壓、溫度和電流,并估算其可用電量。電量計算所需的電池特性參數和應用參數存儲在片內EEPROM中。通過可用電量寄存器,向主系統報告在當前的溫度、放電速率、存儲電荷和應用參數下,可供系統使用的電荷量的一個保守估計。估計電量以剩余mAh數和滿容量的百分比的形式報告。 用法: bsp_Init_DS2782(); while(1) { Get_ds2782_inif(&Ds2782;) }

資源截圖

代碼片段和文件信息

/*
*********************************************************************************************************
*
* 模塊名稱?:?ds2782驅動
* 文件名稱?:?DS2782.c
* 版????本?:?V1.0
* 說????明?:?
*
* 修改記錄?:
* 版本號??日期????????作者?????說明
* V1.0????2019-02-022?Baiyang???
*
* Copyright?(C)?本寶寶不高興
*
*********************************************************************************************************
*/

#include?“stm8s.h“
#include?“bsp.h“

#include?“bsp_ds2782.h“

#include?“bsp_i2c_gpio.h“


Ds2782_Typedef?Ds2782;
Ds278x?Ds2782_RAM;

/*
*?函數名?Get_DS2782_Register
*?功能???獲取DS2782寄存器
*????????詳見數據手冊?P26頁?Basic?Transaction?Formats?章節
*/
uint8_t?Read_DS2782_Shadow_RAM(uint8_t?reg_Addres)
{
????uint8_t?ackdata;
??
????i2c_Start();
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_WR);????//器件地址??|?寫?
????ack=i2c_WaitAck();??//等待應答
????
????i2c_SendByte(reg_Addres);?//寄存器地址?
????ack=i2c_WaitAck();??//等待應答??
????
????i2c_Start();????
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_RD);????//器件地址??|?讀????
????ack=i2c_WaitAck();??//等待應答
????
????data=i2c_ReadByte();??//獲取?低字節
????i2c_NAck();?????????//非應答?
????
????i2c_Stop();???
????ack=ack;????//防止編譯器警告?
???
????return?data;
}


/*
*?函數名?Read_DS2782_Multi_Shadow_RAM
*?功能???獲取DS2782多個寄存器
*????????詳見數據手冊?P26頁?Basic?Transaction?Formats?章節
*/
void??Read_DS2782_Multi_Shadow_RAM(uint8_t?reg_Addresuint8_t?Sizeuint8_t?*?data)
{
????uint8_t?ack;
??
????i2c_Start();
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_WR);????//器件地址??|?寫?
????ack=i2c_WaitAck();??//等待應答
????
????i2c_SendByte(reg_Addres);?//寄存器地址?
????ack=i2c_WaitAck();??//等待應答??
????
????i2c_Start();????
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_RD);????//器件地址??|?讀????
????ack=i2c_WaitAck();??//等待應答
????
????for(int?i=0;i????{
??????data[i]=i2c_ReadByte();??//獲取?字節
??????if(i<(Size-1))?i2c_Ack();??//應答?
??????else?i2c_NAck();???????????//非應答?
????}
????
????i2c_Stop();???
????ack=ack;????//防止編譯器警告?
???
}

/*
*?函數名?Write_DS2782_Shadow_RAM
*?功能???寫DS2782影子寄存器
*/
void?Write_DS2782_Shadow_RAM(uint8_t?reg_Addresuint8_t?data)
{
????uint8_t?ack;
??????
????i2c_Start();
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_WR);????//器件地址??|?寫?
????ack=i2c_WaitAck();??//等待應答
????
????i2c_SendByte(reg_Addres);?//寄存器地址?
????ack=i2c_WaitAck();??//等待應答??
????
????i2c_SendByte(data);?//寫數據
????ack=i2c_WaitAck();??//等待應答?
????
????i2c_Stop();???
????ack=ack;????//防止編譯器警告??
}


/*
*?函數名?Copy_Data_For_Shadow_RAM_To_EEPROM
*?功能???將影子寄存器數據Copy至EEPROM
*????????詳見數據手冊?P26頁?Function?Command?Protocol?章節
*/
void?Copy_Data_For_Shadow_RAM_To_EEPROM(uint8_t?EEPROM_BLOCK)
{
????uint8_t?ack;
??????
????i2c_Start();
????i2c_SendByte(DS2782_8bit_Slave_Address|I2C_WR);????//器件地址??|?寫?
????ack=i2c_WaitAck();??//等待應答
????
????i2c_SendByte(FCR);?//寄存器地址?
????ack=i2c_WaitAck();??//等待應答??
????
????i2c_SendByte(EEPROM_BLOCK);?//寫數據
????ack=i2c_WaitAck();??//等待應答?
????
???

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????15024??2019-05-16?08:26??bsp_ds2782.c
?????文件????????4844??2019-04-17?09:56??bsp_ds2782.h

評論

共有 條評論