你(们)好
我正在尝试从 STM 连接 VL53L1X 传感器。 传感器使用8位地址模式。 我需要使用地址0x52进行写入、使用0x53进行读取。 因此、我需要写入地址0b01010010来向传感器写入一些内容。 但是、在检查时、写入的地址为0b1010010。
如何将地址格式更改为8位? 是否有任何方法可以使用此传感器进行读写?
我还想在控制器上实现 I2C 扫描仪。 这种情况的一般流程是什么?
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.
你(们)好
我正在尝试从 STM 连接 VL53L1X 传感器。 传感器使用8位地址模式。 我需要使用地址0x52进行写入、使用0x53进行读取。 因此、我需要写入地址0b01010010来向传感器写入一些内容。 但是、在检查时、写入的地址为0b1010010。
如何将地址格式更改为8位? 是否有任何方法可以使用此传感器进行读写?
我还想在控制器上实现 I2C 扫描仪。 这种情况的一般流程是什么?
μ I²C 传输的第一个字节由7位地址和 R/W 位组成。 这个字节通常被称为"地址字节"、但严格地说、这是错误的。
μ I²C 地址始终为7位。 没有8位地址模式。 0x52和0x53是第一个字节的值、但将它们称为地址(正如 VL53L1X 数据表所做的那样)会产生误导。
该传感器的地址为0101001 = 0x29。
(有些硬件模块或库在其软件接口中结合了地址和 R/W 位、因此必须使用0x52/0x53。 但这显然不适用于您。)
要实现 μ I²C 扫描仪、请在第一个(地址+ R/W)字节后运行零数据字节的写入事务、并对所有有效地址执行此操作。 (地址0…7和120…127无效。)
您好、Vivek、
您的理解是正确的。 您还可以参阅 TI 驱动程序运行时 API 和 TI 驱动程序 I2C 示例的 I2C.h 参考。
此致、
Ryan