我想使用
HAL_I2C_Mem_Read()
函数读取ZSC31050的一个控制寄存器,然后使用HAL_I2C_Mem_Write()
函数配置控制寄存器。
ZSC31050的默认设备地址是
78
十六进制。
它应该左移 1 位。
因此,在使用写入功能时,它应该是
f0
,而在使用读取功能时,它应该是f1
吗?
是的,这基本上是正确的。对于使用 7 位地址的 I2C,第一个字节的前 7 位是地址,最低有效位是读/写位。
所以正如你所说,你需要将地址左移一位,然后为读取设置最低有效位,并为写入保留它。
参见例如德州仪器 (TI) 对 I2C 的精彩描述。