使用HAL_I2C_Mem_Write和HAL_I2C_Mem_Read函数时如何写入设备地址?

问题描述 投票:0回答:1

我想使用

HAL_I2C_Mem_Read()
函数读取ZSC31050的一个控制寄存器,然后使用
HAL_I2C_Mem_Write()
函数配置控制寄存器。

ZSC31050的默认设备地址是

78
十六进制。

它应该左移 1 位。

因此,在使用写入功能时,它应该是

f0
,而在使用读取功能时,它应该是
f1
吗?

stm32 i2c hal stm32cubeide
1个回答
0
投票

是的,这基本上是正确的。对于使用 7 位地址的 I2C,第一个字节的前 7 位是地址,最低有效位是读/写位。

所以正如你所说,你需要将地址左移一位,然后为读取设置最低有效位,并为写入保留它。

参见例如德州仪器 (TI) 对 I2C 的精彩描述。

© www.soinside.com 2019 - 2024. All rights reserved.