INA226是一路电压电流功率检测器,可以检测线电压,分流电阻的电压和分流电阻电流。
具体实现要看INA226数据手册。
INA226.c:
#include "INA226.h"
INA226 INA226_data;
static void delay_nns(uint16_t D) //30纳秒ns 根据手册要用到IIC的HS高速模式
{
while(--D);
}
void delay_nms(uint16_t ms) //毫秒
{
uint16_t i;
uint32_t M = 0;//720W
for(i = 0;i < ms; i++)
for(M=12000;M > 0;M--);
}
void delay_nus(uint16_t us)//微秒
{
uint16_t i;
uint16_t M = 0;//720W
for(i = 0;i < us; i++)
for(M=72;M > 0;M--);
}
/****************IIC***************************/
void INA226_IIC_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOB时钟
//PC11,12初始化设置
GPIO_Initure.Pin=GPIO_PIN_10|GPIO_PIN_11;//PB10SCL PB11SDA
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH; //高速
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
IIC_SDA_H;
IIC_SCL_H;
delay_nms(5);
}
void INA226_IIC_Start(void)
{
IIC_SDA_H;
IIC_SCL_H;
delay_nns(5);
IIC_SDA_L;//START:when CLK is high,DATA change form high to low
delay_nns(5);
IIC_SCL_L;//钳住I2C总线,准备发送或接收数据
delay_nns(5);
}
void INA226_IIC_Stop(void)
{
IIC_SDA_L;//STOP:when CLK is high DATA change form low to high
delay_nns(5);
IIC_SCL_H;
delay_nns(5);
IIC_SDA_H;//发送I2C总线结束信号
delay_nns(5);
}
void INA226_IIC_Ack(void)
{
IIC_SDA_L;
delay_nns(5);
IIC_SCL_H;
delay_nns(5);
IIC_SCL_L;
delay_nns(5);
IIC_SDA_H;
}
void INA226_IIC_NAck(void)
{

本文详细介绍了INA226一路电压电流功率检测器的使用方法,包括其在电路中的应用、通过IIC协议进行数据读取的具体实现过程,以及如何计算电压、电流和功率等关键信息。
&spm=1001.2101.3001.5002&articleId=106346878&d=1&t=3&u=0e72afeb4a0345b097452c7f0569af84)
159

被折叠的 条评论
为什么被折叠?



