首页 > 应用开发 > Python > 有关GPIO的使用方法教程
fireflyP的GPIO使用独立于内核的GPIO接口,这意味着两侧的控制都是相互独立的。 因此,在控制GPIO时,会注意内核是否申请并控制了GPIO,重复控制会发生意想不到的问题。
在python上使用帮助( gpio )可以打印gpio使用的方法。 主要接口如下。
| init ( ) )
| init gpio功能
| implement it before using Gpio
|
| get _ level (自) )
| returnsthelevelofthepinforinputdirection
| orreturnsettingofthedrregisterforoutputgpios。
|
|set_dir(self,dir )。
| set GPIO direction
| :dir: refer to GpioDir
|
| set _ drv (自,drv ) )。
| set GPIO drv
| :drv: refer to GpioDrv
|
| set _ level (自,级别) )。
| set gpio输出信号
| : level : refertogpiolevel
|
| set _ mux (自,mux ) )。
| set GPIO mux
| :mux: refer to GpioMux
|
| set _ pull (自,拉) )。
|设置gpio pull
| :pull: refer to GpioPull
GPIO的使用流程大致如下。
初始化Gpio:Gpio.init (
2 .申请中使用的GPIO,例如pin=gpio(gpio0b5) )。
3 .输入输出控制:
3.1 .设置输出:
将GPIO设置为输出,将Gpio.OUTPUT设置为参数。 例如,pin.set_dir(gpio.output )
设定输出电平,将输出高电平参数设为Gpio.HIGH,将低电平设为Gpio.LOW,例如pin.set_level(gpio.high )3.2 .设置为输入:
将GPIO作为输入进行构成,参数设为Gpio.INPUT。 例如pin.set_dir(gpio.input ) )。
如果读取输入级别,例如pin.get_level ( )并处于高电平,则返回值为Gpio.HIGH,低电平为Gpio.LOW
其他界面介绍:
set _ drv :设定gpio的驱动能力。 drv参数为Gpio.E_2MA、Gpio.E_4MA、Gpio.E_8MA、Gpio.E_12MA
如果要设置set_mux:io的复用功能并将其复用到GPIO,则mux参数包含gpio.mux_gpio(set_dir中包含set_mux ) gpio.mux_gpio ) mux的其他值的含义具体而言,可以参照RK3288 datesheet的"7.3.2 Detail Register Description "的GRF_GPIOXX_IOMUX寄存器的记述,例如gpio7a1
gpio7a1_sel
GPIO7A[1] iomux select
1'b0: gpio
1'b1: pwm_1
因此,pin.set_mux(gpio.mux_1)将gpio7a1的功能设置为PWM1
set _ pull :设置gpio的下拉列表。 参数为Gpio.NORAML、Gpio.UP、Gpio.DOWN、Gpio.BUS_HOLD。 分别是RK3288 datesheet的:
2 ' b 00: z (正常运行) )。
2 ' b 01: weak1(拉动) )。
2 ' b 10: weak0(拉动) )。
2 ' b 11: repeater (总线密钥器) )。
举一个控制开发板黄色LED的简单例子。
首先看看黄色LED灯对应的引脚。 如红框内所示,是GPIO8A2:找到GPIO管脚的定义后,可以开始编写控制代码。
$sudo python
from fireflyP import Gpio
Gpio.init (
LED_YELLOW='GPIO8A2'
led_yellow=Gpio(LED_YELLOW )
led _ yellow.# set_dir ( gpio.output ) set _ dir已包含set _ mux ( gpio )
LED_yellow.set_level(gpio.low ) #点亮黄色指示灯
复制代码
如下图红框所示,黄色LED灯点亮
关闭LED_yellow.set_level(gpio.high ) #黄色指示灯
复制代码
关闭后的效果:
完整的demo可以访问github中的demo/gpio_test.py
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69920392/viewspace-2874083/ ,如需转载,请注明出处,否则将追究法律责任。