文档章节

树莓派GPIO资料

yehun
 yehun
发布于 2017/05/05 13:46
字数 914
阅读 91
收藏 0

精选30+云产品,助力企业轻松上云!>>>

该程序包提供了一个在 Raspberry Pi 中控制 GPIO 的类。
注意,该模块不适合应用到追求实时性或计数周期的应用中。这是由于您无法预测 Ptyhon 何时繁忙,以及资源回收的时间。而且它是运行在基于 Linux 核心的系统中,也不合适用于实时应用 - 原因在于其它进程可能获得更高的 CPU 优先级。
还需要注意一点,目前的版本还不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。计划在不久的将来会实现的!

导入模块
导入 RPi.GPIO 模块:

importRPi.GPIO as GPIO

通过该操作,您可以将模块名称映射为 GPIO,以便接下来您其它脚本进行使用。
导入模块并检查它是否导入成功,可以尝试:

importRPi.GPIO as GPIO
exceptRuntimeError:
print("导入 RPi.GPIO 时出现错误!这可能由于没有超级用户权限造成的。您可以使用 'sudo' 来运行您的脚本。")

针脚编号
目前有两种方式可以通过 RPi.GPIO 对 Raspberry Pi 上的 IO 针脚进行编号。
第一种方式是使用 BOARD 编号系统。该方式参考 Raspberry Pi 主板上 P1 接线柱的针脚编号。使用该方式的优点是无需考虑主板的修订版本,您硬件始终都是可用的状态。您将无需从新连接线路和更改您的代码。
第二种方式是使用 BCM 编号。这是一种较低层的工作方式 - 该方式参考 Broadcom SOC 的通道编号。使用过程中,您始终要保证主板上的针脚与图表上标注的通道编号相对应。您的脚本可能在 Raspberry Pi 主板进行修订版本更新时无法工作。
指定您所使用的方式(必须指定):

GPIO.setmode(GPIO.BOARD)

或者

GPIO.setmode(GPIO.BCM)

警告
可能您的 Raspberry Pi 的 GPIO 上同时有多个脚本/循环。因此,如果 RPi.GPIO 检测到某个针脚被设置为其它用途而非默认的状态(默认为输入),您会在尝试配置某脚本时得到警告消息。
禁用该警告消息:

GPIO.setwarnings(False)
配置通道
您需要为每个用于输入或输出的针脚配置通道。
配置为输入的通道:
GPIO.setup(channel, GPIO.IN)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
更多关于输入通道的进阶信息可以在这里找到。
配置为输出的通道:

GPIO.setup(channel, GPIO.OUT)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
您还可以指定输出通道的初始值:

GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

输入
读取 GPIO 针脚的值:

GPIO.input(channel)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)这将返回 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

输出
设置 GPIO 针脚的输出状态:

GPIO.output(channel, state)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
状态可以为 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

清理
在任何程序结束后,请养成清理用过的资源的好习惯。使用 RPi.GPIO 也同样需要这样。恢复所有使用过的通道状态为输入,您可以避免由于短路意外损坏您的 Raspberry Pi 针脚。注意,该操作仅会清理您的脚本使用过的 GPIO 通道。
在您的脚本结束后进行清理:

GPIO.cleanup()


Raspberry Pi 修订版本和 RPi.GPIO 版本
检测 Raspberry Pi 主板的修订版本:

GPIO.RPI_REVISION

检测 RPi.GPIO 的版本:

GPIO.VERSION

 

 

 

yehun
粉丝 8
博文 219
码字总数 137564
作品 0
长宁
高级程序员
私信 提问
加载中
请先登录后再评论。
树莓派资源整理汇总(2020年2月18日更新)

本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓派电路原理图下载、树莓派应用、树莓派工具等等,非常值得收藏。 一、快...

科技爱好者
02/18
122
0
一个菜鸟初学树莓派(1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/u011575671/article/details/22445233 这里先列举出研究这个树莓派需...

yuke__
2014/03/28
0
0
树莓派硬件编程——(零)先导篇

什么是树莓派? 树莓派(Raspberry Pi)我们可以理解成是一块只有卡片大小的微型计算机,麻雀虽小五脏俱全,它有USB端口、音频接口、视频接口、摄像头接口网卡接口,基本可以说,它就是一款迷...

osc_hjp114em
04/19
10
0
树莓派硬件编程——(零)先导篇

什么是树莓派? 树莓派(Raspberry Pi)我们可以理解成是一块只有卡片大小的微型计算机,麻雀虽小五脏俱全,它有USB端口、音频接口、视频接口、摄像头接口网卡接口,基本可以说,它就是一款迷...

创客老师Apple
04/18
0
0
树莓派资源整理

本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓派电路原理图下载、树莓派应用等等,非常值得收藏。 一、快速上手 树莓派...

xinxingli
2019/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使当前提交成为Git存储库中唯一的(初始)提交? - Make the current commit the only (initial) commit in a Git repository?

问题: I currently have a local Git repository, which I push to a Github repository. 我目前有一个本地Git存储库,我将其推送到Github存储库。 The local repository has ~10 commits, ......

javail
17分钟前
14
0
IntelliJ IDEA 默认快捷键大全

Remember these Shortcuts 常用 功能 快捷键 备注 ● Smart code completion Ctrl + Shift + Space - ● Search everywhere Double Shift - ● Show intention actions and quick-fixes Alt......

巨輪
56分钟前
18
0
Hacker News 简讯 2020-07-14

更新时间: 2020-07-14 01:01 I Know What You Download on BitTorrent - (iknowwhatyoudownload.com) 我知道你在BitTorrent上下载了什么 得分:196 | 评论:159 Show HN: Primo – all-in-one......

FalconChen
今天
129
0
绕过移动端系统限制的 dlopen 库 byOpen

byOpen是一个绕过移动端系统限制的增强版dlfunctions库。 支持特性 Android 支持App中加载和使用Android系统库接口(即使maps中还没有被加载也支持)。 Android 7以上dlopen, System.load都是...

shzwork
昨天
31
0
Golang学习系列第二天:变量、常量、数据类型和流程语句

继golang第一天后,今天学习下golang的变量、常量、数据类型和控制流语句。 做过其他编程语言(比如JavaScript,java,python)项目的话,其实很好理解变量、常量、数据类型和控制流。 变量也...

董广明
昨天
48
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部