5.1. Gpio 控制
5.1.1. 概述
X3派提供python接口的 Hobot.GPIO 操作gpio。
5.1.2. Python接口使用gpio
确认安装 hobot-arm64-gpiopy.deb, 在开发板中默认已经安装,如没有安装,按照以下命令安装:
dpkg –i hobot-arm64-gpiopy.deb
5.1.2.1. 接口使用示例
GPIO 设置为输出模式,设置输出电平:
import Hobot.GPIO as GPIO
# Pin Definitions
output_pin = 11 # BOARD num 11, GPIO num 102
# Pin Setup:
GPIO.setmode(GPIO.BOARD)
# set pin as an output pin with optional initial state of HIGH
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
# output state of LOW
GPIO.output(output_pin, GPIO.LOW)
# Clear all GPIO configuration
GPIO.cleanup()
GPIO 设置为输入模式,读取管脚电平值:
import Hobot.GPIO as GPIO
# Pin Definitions
input_pin = "X2A_I2S0_BCLK_33" # CVM pin "X2A_I2S0_BCLK_33", GPIO num 102
# set pin as an output pin with optional initial state of HIGH
GPIO.setup(input_pin, GPIO.IN) # set pin as an input pin
value = GPIO.input(input_pin)
print(value)
# Clear input_pin GPIO configuration
GPIO.cleanup(input_pin)
GPIO 设置为输入模式,捕获管脚的上升沿、下降沿事件:
import Hobot.GPIO as GPIO
input_pin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(input_pin, GPIO.IN)
GPIO.wait_for_edge(input_pin, GPIO.FALLING)
print("input_pin level falling!")
GPIO.cleanup()
GPIO 设置为输入模式,启动gpio中断功能,响应管脚的上升沿、下降沿中断:
import Hobot.GPIO as GPIO
def interrup_ops(channel):
print("interrupt is triggered ")
input_pin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(input_pin, GPIO.IN)
GPIO.add_event_detect(input_pin, GPIO.FALLING, callback=interrup_ops, bouncetime=10)
while True:
print("interrup demo")
time.sleep(2)
GPIO.cleanup()
更多使用示例可以参考开发板上 /userdata/python-gpio-samples 目录下的示例程序。