STM32CubeMX配置-IIC读写

一、简介

        通过STM32G070配置IIC协议,读取智融SW35xx的电流,读取之前需先配置ADC读取的数据类型,再进行读取。

二、IIC配置

        配置的是硬件IIC2,标准模式,100KHZ。

三、IIC读写

#define  SW3526_IIC_ADDR			0x3C		//IIC地址 7位
#define  SW3526_IIC_R_ADDR			0x79		//读地址
#define  SW3526_IIC_W_ADDR			0x78		//写地址
#define  SW3526_REG_ADC_COFIG		0x3A
#define  SW3526_REG_R_ADC_H8		0x3B
#define  SW3526_REG_R_ADC_L4		0x3C

void pri_sw3526_iic_dischrg_cur(void)
{
	static uint16_t su16Sw3526ReadDatCnt = 0;
	
	if(HAL_GPIO_ReadPin(USB_EN_GPIO_Port,USB_EN_Pin) == GPIO_PIN_SET)
	{
		su16Sw3526ReadDatCnt++;
		if(su16Sw3526ReadDatCnt == 1000)			
		{
			su16Sw3526ReadDatCnt = 0;
			HAL_I2C_Mem_Write(&hi2c2,SW3526_IIC_W_ADDR,SW3526_REG_ADC_COFIG,I2C_MEMADD_SIZE_8BIT,&g_su8SW3526AdcOutType,1,1000);
			HAL_I2C_Mem_Read(&hi2c2,SW3526_IIC_R_ADDR,SW3526_REG_R_ADC_H8,I2C_MEMADD_SIZE_8BIT,&g_stuTypePortCurDat.m_u8Sw3526CurAdcH8Bit,1,1000);
			HAL_I2C_Mem_Read(&hi2c2,SW3526_IIC_R_ADDR,SW3526_REG_R_ADC_L4,I2C_MEMADD_SIZE_8BIT,&g_stuTypePortCurDat.m_u8Sw3526CurAdcL4Bit,1,1000);
			g_stuTypePortCurDat.m_u16Sw3526DischrgCur = (g_stuTypePortCurDat.m_u8Sw3526CurAdcH8Bit << 4) | g_stuTypePortCurDat.m_u8Sw3526CurAdcL4Bit;
			g_stuTypePortCurDat.m_u16Sw3526DischrgCur = g_stuTypePortCurDat.m_u16Sw3526DischrgCur * 25 / 10;  //µ¥Î»mA
		}
	}
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值