【问题标题】:Read I2C transaction of 2 bytes in Python在 Python 中读取 2 个字节的 I2C 事务
【发布时间】:2018-06-04 07:20:39
【问题描述】:

我正在尝试在 Python 上实现从 I2C 通信中读取。我面临的问题是,我从一个事务中的两个字节的答案中读取的传感器。有没有提供这种阅读方式的 Python 库。

这里是传感器回答的描述:

【问题讨论】:

  • 听起来更像是基本的字节运算。试试val = MSB*2^8+LSB 或类似的。
  • 字节算法没有问题,问题是如何从传感器收集这两个字节。
  • 您选择的库(我们在这里不提供库推荐。)应该具有读取 16 位“单词”的功能。
  • 您必须配置 I2C 总线并读取正确的地址。 instructables.com/id/Raspberry-Pi-I2C-Python所以假设你的问题的答案是smbus
  • 感谢cmets,他们至少给了我一个起点。你能给我一个这样的阅读或某事的例子吗?

标签: python raspberry-pi3 i2c honeywell


【解决方案1】:

您要查找的库是smbus 库。如果您希望按照建议仅读取两个字节,请使用read_word_data(int addr,char cmd)。如果您使用的传感器返回超过 2 个字节,则必须使用 read_block_data(int addr,char cmd) 并进行一些字节运算。

图书馆信息:http://www.raspberry-projects.com/pi/programming-in-python/i2c-programming-in-python/using-the-i2c-interface-2

【讨论】:

  • 感谢您的回答。我已经解决了使用 smbus2 库中的 SMBusWrapper 的问题。我使用的函数是 read_i2c_block_data(addr, offset, number_of_bytes)。
猜你喜欢
  • 2014-09-17
  • 2020-11-04
  • 2012-01-19
  • 1970-01-01
  • 2019-11-14
  • 2022-07-14
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多