跳转到主要内容

用于控制树莓派GPIO通道的模块

项目描述

此软件包提供了一个Python模块,用于控制树莓派的GPIO。

请注意,此模块不适用于实时或时间关键的应用。这是因为您无法预测Python何时会进行垃圾回收。它还运行在Linux内核上,这不适合实时应用 - 它是多任务操作系统,另一个进程可能会被分配更高的CPU优先级,导致程序抖动。如果您需要真正的实时性能和可预测性,请购买Arduino http://www.arduino.cc

请注意,当前版本尚不支持RPi的SPI、I2C、硬件PWM或串行功能。这将在不久的将来实现 - 请关注这一领域!单线功能也计划实现。

虽然硬件PWM目前不可用,但所有通道上都可以使用软件PWM。

有关示例和文档,请访问 http://sourceforge.net/p/raspberry-gpio-python/wiki/Home/

变更日志

0.7.1

  • 改进RPi板 + peri_addr检测(问题190/191)

  • 修复Python 3.9的PyEval_InitThreads弃用警告(问题188)

  • 修复使用GCC 10的构建(问题187)

  • 修复文档字符串以不包括许可证

  • 移除Debian/Raspbian stretch打包支持

  • 使用setuptools而不是distutils

  • 添加Zero 2 W检测

  • 已测试并可与Python 2.7、3.7、3.8、3.9、3.10一起使用

0.7.0

  • 更新RPI_INFO以包括RPi 4B

  • 为Pi4设置固定上拉/下拉(问题168)

  • 修复文档字符串中的拼写错误

  • 在Raspbian Buster + Python 3.8.0b2上测试并正常工作

  • 修复aarch64的板卡检测(问题161/165)

  • 修复c_gpio.c中检查mmap返回值(问题166)

0.6.5

  • 修复重新导出/sys/class/gpio/gpioNN时的异常

0.6.4

  • 事件清理错误(问题145)

  • 对于重复的PWM对象引发异常(问题54 - Thijs Schreijer <thijs@thijsschreijer.nl>)

  • 修复构建警告(问题146 - Dominik George)

  • test.py在python 2和3上运行不变

  • 软PWM停止运行修复(问题94, 111, 154)

  • 软PWM段错误修复(Luke Allen pull request)

0.6.3

  • 修复代码以在PyPy下构建(Gasper Zejn)

  • os.system破坏事件检测 - Matt Kimball(问题127)

0.6.2

  • 重写了Debian打包机制

  • RPI_INFO报告Pi 3

  • 更改模块布局 - 将C组件移动到RPi._GPIO

0.6.1

  • 更新RPI_INFO以检测更多板卡类型

  • 问题118 - add_event_detect有时在未授权用户下给出运行时错误

  • 问题120 - setmode()记住无效的模式

0.6.0a3

  • 现在如果可用则使用/dev/gpiomem来避免以root运行

  • 修复引脚3/5上的上拉/下拉警告

  • 当禁用devicetree时,在Pi 2上更正基本地址

  • 编译时caddr_t错误(问题109)

  • setup()参数无效时出错(问题93)

  • 为wait_for_edge()添加超时参数(问题91)

0.5.11

  • 修复 - 使用BOARD模式时缺少>26的引脚

  • 添加getmode()

  • 当使用混合模式时引发异常

  • GPIO.cleanaup()取消设置当前引脚模式

0.5.10

  • 问题95 - 支持RPi 2板卡

  • 引入RPI_INFO

  • 弃用RPI_REVISION

  • 问题97 - 修复setup()的docstring

0.5.9

  • 问题87 - 关于i2c引脚上的上拉/下拉警告

  • 问题86/75 - wait_for_edge()错误修复

  • 问题84 - 使用自定义内核时正确识别RPi

  • 问题90 - 清理列表/元组的通道

0.5.8

  • 在GPIO.setup()中允许列表/元组的通道

  • GPIO.output()现在允许列表/元组的值

  • GPIO.wait_for_edge()错误修复(问题78)

0.5.7

  • 问题67 - 加快GPIO.wait_for_event()的重复调用速度

  • 为GPIO.wait_for_event()添加bouncetime关键字

  • 添加额外的边缘/中断单元测试

  • GPIO.wait_for_event()现在可以与GPIO.add_event_detect()混合使用

  • 改进事件清理

  • 问题69已解决

0.5.6

  • 问题68 - 支持RPi Model B+

  • 修复gpio_function()

0.5.5

  • 问题52 - ‘取消分配’一个通道

  • 问题35 - 使用GPIO.event_detected()与switchbounce

  • 重构事件代码

  • 重写测试以使用unittest机制和新的测试板卡以及环回

  • 修复GPIO.cleanup()后添加事件

  • 问题64 - 关于/dev/mem权限错误的误导

  • 问题59 - PWM常量和类之间的名称冲突

0.5.4

  • 更改发布状态(从alpha更改为完整发布)

  • 当GPIO.cleanup()没有清理内容时发出警告(问题44)

  • 避免常量之间的冲突(例如,HIGH / RISING / PUD_DOWN)

  • 在gpio_function中接受BOARD号码(问题34)

  • gpio_function的更多返回值(INPUT, OUTPUT, SPI, I2C, PWM, SERIAL, UNKNOWN)

  • 整理docstring

  • 修复gpio_function中的/dev/mem访问错误

0.5.3a

  • 允许非root用户使用pydoc(问题27)

  • 修复作为守护进程运行时的add_event_detect错误(问题32)

  • 简化异常类型

  • 从distribute更改为pip

0.5.2a

  • 添加了软件PWM(实验性)

  • 将抖动处理添加到事件回调中

  • 为事件回调添加通道号参数(问题31)

  • 内部重构和代码整理

0.5.1a

  • 修复了多个GPIO的回调(问题28)

0.5.0a

  • 添加了新的边缘检测事件(中断处理) - 添加了add_event_detect() - 添加了remove_event_detect() - 添加了add_event_callback() - 添加了wait_for_edge()

  • 删除了旧的实验性事件函数 - 删除了 set_rising_event() - 删除了 set_falling_event() - 删除了 set_high_event() - 删除了 set_low_event()

  • 将 event_detected() 改为新的边缘检测功能

  • input() 现在返回 0/LOW == False 或 1/HIGH == True(整数)而不是 False 或 True(布尔值)。

  • 修复了重复导入错误(问题 3)

  • 将 SetupException 改为 RuntimeError 以便在导入时捕获(问题 25,Chris Hager <chris@linuxuser.at>)

  • 改进了函数的 docstrings

0.4.2a

  • 修复了在 Arch Linux 上安装的问题(Python 3.3)(问题 20)

  • 设置通道为输出时的初始值(问题 19)

0.4.1a

  • 添加了 VERSION

  • 允许将设置为输出的通道输入(Eric Ptak <trouch@trouch.com>)

0.4.0a

  • 添加了对 Revision 2 版板的支持

  • 添加了 RPI_REVISION

  • 添加了 cleanup() 函数,并在程序退出时移除了自动重置功能

  • 添加了 get_function() 来读取现有的 GPIO 通道功能(来自 Eric Ptak <trouch@trouch.com> 的建议)

  • 添加了 set_rising_event()

  • 添加了 set_falling_event()

  • 添加了 set_high_event()

  • 添加了 set_low_event()

  • 添加了 event_detected()

  • 添加了 test/test.py

  • 将 debian 转换为 armhf

  • 修复了 C 函数 short_wait()(感谢 Thibault Porteboeuf <thibaultporteboeuf@gmail.com>)

0.3.1a

  • 修复了输出上高低状态交换的关键错误

  • 为输入添加了上拉/下拉设置功能

0.3.0a

  • 重写为 C 扩展

  • 现在使用 /dev/mem 和 SoC 寄存器而不是 /sys/class/gpio

  • 更快!

  • 强制调用 GPIO.setmode()

  • 添加了 GPIO.HIGH 和 GPIO.LOW 常量

0.2.0

  • 将状态从 alpha 改为 beta

  • 添加了 setmode() 以便使用 BCM GPIO 00.nn 通道号

  • 将 InvalidPinException 重命名为 InvalidChannelException

0.1.0

  • 修复了方向错误

  • 添加了 MANIFEST.in(包括缺少的文件)

  • 将 GPIO 通道号更改为引脚号

  • 测试并通过!

0.0.3a

  • 添加了 GPIO 表

  • 重构

  • 修复了一些关键错误

  • 仍然完全没有测试!

0.0.2a

  • 内部重构。仍然完全没有测试!

0.0.1a

  • 第一个版本。在我能够拿到 Raspberry Pi 之前完全未测试!

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

RPi.GPIO-0.7.1.tar.gz (29.1 kB 查看哈希值)

上传时间

构建分发

RPi.GPIO-0.7.1-py3.7-linux-armv6l.egg (71.1 kB 查看哈希值)

上传时间

RPi.GPIO-0.7.1-py2.7-linux-armv6l.egg (67.9 kB 查看哈希值)

上传时间

RPi.GPIO-0.7.1-cp310-cp310-linux_armv6l.whl (69.8 kB 查看哈希值)

上传时间 CPython 3.10

RPi.GPIO-0.7.1-cp39-cp39-linux_armv6l.whl (69.3 kB 查看哈希值)

上传时间 CPython 3.9

RPi.GPIO-0.7.1-cp38-cp38-linux_armv6l.whl (68.4 kB 查看哈希值)

上传时间 CPython 3.8

RPi.GPIO-0.7.1-cp37-cp37m-linux_armv6l.whl (70.4 kB 查看哈希值)

上传时间 CPython 3.7m

RPi.GPIO-0.7.1-cp27-cp27mu-linux_armv6l.whl (67.4 kB 查看哈希值)

上传时间 CPython 2.7mu

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面