读取电流电压
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
static float CurrentLSB; // 电流分辨率
|
||||
|
||||
void
|
||||
INA226_Init (uint16_t r_shunt, float max_current)
|
||||
INA226_Init (float r_shunt, float max_current)
|
||||
{
|
||||
uint16_t cal = 0;
|
||||
|
||||
@ -25,14 +25,14 @@ INA226_WriteReg (uint8_t reg, uint16_t value)
|
||||
uint8_t data_t[2];
|
||||
data_t[0] = (uint8_t)(value >> 8);
|
||||
data_t[1] = (uint8_t)(value & 0xFF);
|
||||
IIC_WriteBytes (INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
IIC_WriteBytes (INA226_ADDR, reg, data_t, 2);
|
||||
}
|
||||
// 寄存器读取函数
|
||||
uint16_t
|
||||
INA226_ReadReg (uint8_t reg)
|
||||
{
|
||||
uint8_t data_t[2];
|
||||
IIC_ReadBytes (INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
IIC_ReadBytes (INA226_ADDR, reg, data_t, 2);
|
||||
return (data_t[0] << 8) | data_t[1];
|
||||
}
|
||||
|
||||
@ -58,4 +58,5 @@ INA226_ReadPower (void)
|
||||
{
|
||||
int16_t raw = (int16_t)INA226_ReadReg (POWER_REG);
|
||||
return raw * 25 * CurrentLSB; // P=25×CurrentLSB×raw
|
||||
// return raw * CurrentLSB; // 实测结果偏大
|
||||
}
|
@ -19,7 +19,7 @@
|
||||
#define INA226_ADDR 0x80
|
||||
|
||||
// 函数声明
|
||||
void INA226_Init (uint16_t r_shunt, float max_current);
|
||||
void INA226_Init (float r_shunt, float max_current);
|
||||
void INA226_WriteReg (uint8_t reg, uint16_t value);
|
||||
uint16_t INA226_ReadReg (uint8_t reg);
|
||||
|
||||
|
Reference in New Issue
Block a user