这个python模块允许smbus通过linux主机上的i2c/dev接口进行访问。主机内核必须具有I2C支持、I2C设备接口支持和总线适配器驱动程序。

smbus-cffi的Python项目详细描述


https://secure.travis-ci.org/bivab/smbus-cffi.svgLatest VersionImplementationLicenseDownload formatRequirements Status

这个python模块允许smbus通过linux上的i2c/dev接口进行访问 东道主。主机内核必须支持I2C、I2C设备接口和 总线适配器驱动程序。

此模块是基于cffi的python重新实现python smbus c扩展 (http://www.lm-sensors.org/browser/i2c-tools/trunk/py-smbus/)在pypy上工作 和cpython(2.6及以上)。

注释

smbus方法read_block_data和block_process_call未经充分测试, 可能无法正常工作,请参阅下面的注释。

对覆盆子pi用户的注意事项:调用read_block_data和 块进程调用底层i2c/smbus库/驱动程序导致内核 覆盆子皮上的恐慌。在其他硬件上测试这些特性 很好的贡献方式。

示例

假设您在总线上的地址4连接了一个设备

>>> from smbus import SMBus

>>> bus = SMBus(4)

>>> bus.write_quick()

>>> some_reg = 123

>>> bus.write_i2c_block_data(4, some_reg, [1, 4, 7])

依赖关系

要安装smbus cffi,您需要:

https://metacpan.org/pod/Device::SMBus提供了有关如何设置依赖项的详细说明。

在基于Debian的发行版上,这些发行版可以安装:

sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev

在Arch Linux上:

pacman -S base-devel
pacman -S i2c-tools

最后使用pip或从源代码安装cffi。

pip install cffi

安装

安装软件包有几种方法。首先按照上述说明安装依赖项。注意:不幸的是 在cpython上使用pip或setup.py安装时,需要确保 cffi软件包已经安装。

一。从pypi安装pip

pip install smbus-cffi

2.从git安装pip

pip install git+https://github.com/bivab/smbus-cffi.git

三。克隆存储库并运行setup.py

git clone https://github.com/bivab/smbus-cffi.git
python setup.py install

错误报告

要提交错误报告,请对项目使用github错误跟踪器:

https://github.com/bivab/smbus-cffi/issues

开发

您可以从github托管的存储库中获取最新版本 https://github.com/bivab/smbus-cffi

文件requirements.txt包含需要使用的依赖项列表 中小企业CFFI。

该项目使用py.test进行测试,使用tox对pypy和python进行测试。

文件test/test_smbus_integration.py包含一组集成测试 smbus包装器。要运行集成测试,您需要一个Arduino板 与测试/测试草图中提供的草图一起闪烁。串行端口和 Arduino板的I2C引脚需要连接到运行 测验。该草图实现了smbus协议的副本,该协议读取 并使用smbus和串行端口为每个测试写入数据。

作者

  • 大卫·施耐德

原始SMBus C扩展的作者:

  • 马克·霍夫曼

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java<E extends Number>和<Number>之间有什么区别?   java如何将ActionScriptObject转换为ByteArray?   java如何平衡图形中的循环?   java为什么会抛出这个SAXParsexException?   使用JPA的java删除实体   java为什么要使用AccessibilityManager是有原因的。sInstance会导致内存泄漏吗?   java如何在Spring表单中隐藏选项?   java简单Hello World servlet在EclipseTomcat中给出错误404   java解决Web应用程序的heapdump问题(JSP+SpringMVC+JPAHIBERNATE)   SpringBoot如何为java联合生成graphql模式?   java是否将用户输入(从TextField)传递到另一个类?   java如何对集合执行clone()。newSetFromMap(地图)   java节点JS服务器处理10000个WebSocket   java为什么Thymeleaf International仅适用于ResourceBundleMessageSource   java如何使用build编译ResourceBundle类。xml文件   Java 2D游戏检查玩家是否触摸到另一个精灵   java无法从类<PowerMockRunner>转换为类<?扩展Runner>   从服务器搜索json数组的java搜索栏   java通过无知解决LazyInitializationException异常   java从线程更新JFreeChart