用于控制 Raspberry Pi GPIO 通道的模块
项目描述
这个包提供了一个 Python 模块来控制 Raspberry Pi 上的 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 检测(issue 190 / 191)
修复 Python 3.9 的 PyEval_InitThreads 弃用警告(问题 188)
使用 GCC 10 修复构建(问题 187)
修复文档字符串以不包含许可证
删除 Debian/Raspbian 拉伸打包支持
使用 setuptools 而不是 distutils
添加了零 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)
对于 python 2+3,test.py 运行不变
软 PWM 停止运行修复(问题 94、111、154)
软 PWM 段错误修复(Luke Allen 拉取请求)
0.6.3
修复代码,使其在 PyPy (Gasper Zejn) 下构建
os.system 中断事件检测 - Matt Kimball (issue 127)
0.6.2
重写 Debian 打包机制
RPI_INFO 报告 Pi 3
更改了模块布局 - 将 C 组件移至 RPi._GPIO
0.6.1
更新 RPI_INFO 以检测更多板类型
问题 118 - add_event_detect 有时会给 unpriv 用户提供运行时错误
问题 120 - setmode() 记住无效模式
0.6.0a3
现在使用 /dev/gpiomem(如果可用)以避免以 root 身份运行
使用引脚 3/5 上的上拉/下拉修复警告
禁用设备树时在 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() 的固定文档字符串
0.5.9
问题 87 - 警告 i2c 引脚上拉/下拉
问题 86/75 - wait_for_edge() 错误修复
问题 84 - 使用自定义内核时正确识别 RPi
问题 90 - 频道列表/元组上的 cleanup()
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 模型 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)
整理文档字符串
使用 gpio_function 修复 /dev/mem 访问错误
0.5.3a
允许非 root 用户使用 pydoc(问题 27)
修复作为守护进程运行时的 add_event_detect 错误(问题 32)
简化的异常类型
从分发更改为点子
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 >)
改进的函数文档字符串
0.4.2a
修复在 Arch Linux (Python 3.3) 上安装的问题 (issue 20)
将通道设置为输出时的初始值(问题 19)
0.4.1a
添加版本
允许通道的 input() 设置为输出 (Eric Ptak < trouch @ trouch .com > )
0.4.0a
添加了对修订版 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
第一个版本。在我拿到树莓派之前完全未经测试!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。