我有工作 C 和 Python3 代码,基于互联网上的简单示例,我可以正确地将数据从我的 Raspberry Pi4 发送到 Atmel SAM-E70 开发套件板。我连接了一个逻辑分析仪来查看正在发送的数据,对于i2c_write_data_block()
我的 Python3 代码中的每一个,smbus2 代码都会发送 7 位地址,然后是 0x00,然后是我要发送的字节流。我的 C 代码发送相同的字节流,地址和数据之间没有 0x00。最后,使用i2ctransfer()
从 shell 发送字节流也可以按预期工作:没有额外的字节。
假设,可能是 smbus2 包正在尝试使用 10 位地址,但我找不到任何支持该假设的文档。事实上,我的发现表明 I2C 总线配置是通过配置文件执行的,这使我相信用于在 I2C 总线上进行通信的语言应该无关紧要——它具有相同的配置.
有人遇到过这种情况么?