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.

[参考译文] INA219:I2C 接口问题

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1027145/ina219-i2c-interfacing-problem

器件型号:INA219

你好。

我对 INA219的 ACK 位有问题。 在发送  SLAVE_ADDRESS_WRITE (((0x40)<<1)后、我获得 ACK 位、但在发送配置寄存器指针或其他指针之后、我没有获得 ACK 位。

出什么问题了?

以下是我的 STM32F103代码:

I2C_GenerateSTART (I2C1、ENABLE);
while (I2C_CheckEvent (I2C1、I2C_EVENT_MASTER_MODE_SELECT)!=成功){};

I2C_Send7bitAddress (I2C1、SLAVE_ADDRESS_WRITE、I2C_DIRECTION 发送器);A0 - A1 -> GND


while (!I2C_CheckEvent (I2C1、I2C_EVENT_MASTER_BYTE_transmitted));
I2C_Cmd (I2C1、使能);

I2C_SendData (I2C1、0x00);
Read_SR1=I2C_ReadRegister (I2C1、I2C_Register_SR1);
Read_SR2=I2C_ReadRegister (I2C1、I2C_Register_SR2);
while (!I2C_CheckEvent (I2C1、I2C_EVENT_MASTER_BYTE_transmitted));

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

    您好 Alexey、

    很难肯定这个问题、但我在这里的猜测是 I2C 控制器可能会在器件地址之后发送停止位。  这样、当您尝试发送寄存器地址时、它被视为器件地址、并且没有任何器件会使用该地址发送 ACK。  

    如果最终不是问题、则发布通信范围截屏的屏幕截图以进行进一步调试。