[麦麦茶水间] 【每周分享】STM32CubeMX配置-IIC读写

[复制链接]
639|0
liao6 发表于 2025-10-21 14:35 | 显示全部楼层 |阅读模式
本帖最后由 liao6 于 2025-10-21 14:37 编辑

一、简介

        通过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

                }

        }

}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

287

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部