This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ76972:Stm32G4 和 BQ76972 读取/写入之间的 I2C 通信失败

Guru**** 2387080 points
Other Parts Discussed in Thread: BQ76972
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1531298/bq76972-i2c-communication-between-stm32g4-and-bq76972-read-write-failing

器件型号:BQ76972

工具/软件:

您好团队:

我正在努力在 STM32 MCU 和 BQ76972 IC 之间建立基本通信。 但是、我遇到了一个问题、即写入操作仅成功一次、后续尝试都会失败。

您能帮助我调查这个问题吗?

随附该代码以供您参考。

谢谢您、

恶劣

// Simple I2C write between Stm32 and BQ76972 //

HAL_StatusTypeDef BQ76972_WriteByte(uint8_t reg_addr, uint8_t data)
{
    return HAL_I2C_Mem_Write(&hi2c3, BQ76972_I2C_ADDR_WRITE, reg_addr, I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY);
}


void Test_Write_BQ76972(void)
{
    char msg[64];

    if (BQ76972_WriteByte(0x09, 0x00) == HAL_OK)
    {
    	sprintf(msg, "Write to PROTECT1 OK\r\n");
		RS485_Transmit((uint8_t*)msg, strlen(msg));

    }
    else
    {
    	sprintf(msg, "Write Failed\r\n");
		RS485_Transmit((uint8_t*)msg, strlen(msg));
    }
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     这是 I2C 通信的参数

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

     有关寄存器以及如何与器件通信的说明、请参阅技术参考手册 (www.ti.com/.../sluuby2b.pdf)。 我们可以回答有关器件的具体问题、但我们希望我们的客户能够查看/调试其代码。 如果您在使用微控制器时遇到问题、请联系 MCU 团队。 如果您对 TRM 有任何具体问题、请发布另一个同样的主题。 谢谢你。  

    此致、  

    Arelis G. Guerrero