RPi.GPIO 模块编程手册

 

下家山翻译

参考资料:

https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

1:导入这个模块

要导入这个模块,需要执行下面的代码:

import RPi.GPIO as GPIO

By doing it this way, you can refer to it as just GPIO through the rest of your script.

通过这种方式,后续代码(也称为脚本script)你可以通过GPIO这个名字来使用这个模块(实际上上是使用了一个简称)

To import the module and check to see if it is successful:

如果要导入模块的同时检查是否成功,可以这样做

try:

    import RPi.GPIO as GPIO

except RuntimeError:

print("Error importing RPi.GPIO!  This is probably because you need superuser privileges.  You can achieve this by using 'sudo' to run your script")

说明:

关键字Try和except的组合在Python中常用于捕捉异常(编程术语叫陷阱),在执行完

import RPi.GPIO as GPIO这条语句,会判断是否发生了RuntimeError错误(即运行错误),如果发生了,则条件成立,打印print函数里面的提示信息。

 

  

2. 引脚编号

当使用Rpi.GPIO模块编程的时候,树莓派的IO引脚有两种编码方式,第一种是BOARD编码方式,第二种是BCM编码方式,如下图所示:

可以使用下面的代码设置你需要的引脚编码方式:

GPIO.setmode(GPIO.BOARD)

  # 或者

GPIO.setmode(GPIO.BCM)

想知道你现在是什么引脚编码方式,可以执行下面的代码得到

mode = GPIO.getmode()

返回结果 mode 将是下面三种情况之一 GPIO.BOARD, GPIO.BCM or None

3.关于警告

It is possible that you have more than one script/circuit on the GPIO of your Raspberry Pi. As a result of this, if RPi.GPIO detects that a pin has been configured to something other than the default (input), you get a warning when you try to configure a script. To disable these warnings:

很有可能你需要设置你的树莓派引脚多种功能,此时,如果Rpi.GPIO模块检测到某个引脚被配置了默认功能以外的功能(默认是输入),你将得到一个警告,比如:

要解决这个问题,你只需要加入如下代码:

GPIO.setwarnings(False)

4.设置一个通道

(注意这里面的通道就是指引脚)

当你要使用一个引脚作为输入或者输出功能的时候,你必须要配置它。如果要配置某个通道(引脚)作为输入,执行如下脚本(代码)

GPIO.setup(channel, GPIO.IN)

(这里的通道是指BOARD or BCM模式下的编码引脚).

配置某个引脚作为输出,执行如下代码:

GPIO.setup(channel, GPIO.OUT)

你还可以在设置某个引脚为输入或者输出的同时,初始化它为高电平或者低电平,代码如下:

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

5.一次设置多个引脚

你可以利用Python中的列表或者元组功能一次设置多个引脚:

chan_list = [11,12]    #使用列表方式同时设置第11号引脚和12号引脚为输出!

                    #你还可以以元组的方式来设置:

                    # chan_list = (11,12)

GPIO.setup(chan_list, GPIO.OUT)

6.关于输入

通过以下方式可以得到一个输入引脚的值:

GPIO.input(channel)

上面的代码将返回一个0 / GPIO.LOW / False或者1 / GPIO.HIGH / True.

0代表低电平,False表示假,GPIO.LOW也表示低电平

1代表高电平,True表示真,GPIO.HIGH表示高电平

7.关于输出

要设置引脚的输出状态,代码如下:

GPIO.output(channel, state)

这里State 可以是 0 / GPIO.LOW / False或者1 / GPIO.HIGH / True.

8.一次设置多个引脚输出状态

你能够一次设置多个引脚的输出状态. For example:

chan_list = [11,12]        # 列表的方式定义11和12引脚

GPIO.output(chan_list, GPIO.LOW)     # sets all to GPIO.LOW

GPIO.output(chan_list, (GPIO.HIGH, GPIO.LOW))   # 设置11号引脚为高电平,12号引脚为低电平

9.Cleanup(释放资源)

一个好的编程习惯是:在程序结束的时候,通过cleanup函数释放所有资源。虽然系统会帮你释放,但是养成这种习惯是很好的,比如你在某个时候需要切换引脚的状态,之前是输入,某个时候要切换到输出,那么在设置输出状态的时候,你应该先释放着引脚,然后切换到输出。

通过下面的代码你可以释放正在使用的所有引脚:

GPIO.cleanup()

你还可以释放某个引脚,或者通过列表或者元组方式释放多个引脚:

GPIO.cleanup(channel)

GPIO.cleanup( (channel1, channel2) )

GPIO.cleanup( [channel1, channel2] )

10.树莓派开发板信息和GPIO模块版本信息

想知道你现在树莓派开发板信息,可以执行如下代码:

GPIO.RPI_INFO

要知道你的树莓派的版本信息可以执行如下代码:

GPIO.RPI_INFO['P1_REVISION']

GPIO.RPI_REVISION    (deprecated)

想获取Python RPi.GPIO模块的版本信息,执行如下代码:

GPIO.VERSION

 

发布了38 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_27320195/article/details/104449211