Purple Pi OH(Debian/Ubuntu)使用python控制gpio

描述

本文分享的是Purple Pi OH开源主板搭载Debian/Ubuntu系统如何使用python控制gpio。

Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16,支持TensorFlow/MXNet/PyTorch/Caffe框架,多路视频输出和输入,支持4K、H.265/H.264视频解码,接口丰富。
 

玩法丰富,支持OpenHarmony、Ubuntu、Debian、Android等多种系统,提供丰富开源资料。

产品规格书:Purple Pi OH 产品手册

开源开源

安装python gpio库

apt-get update
apt -y install python3-libgpiod

GPIO输出

import time
import gpiod

//B7=15
LINE_OFFSET =15

chip0 = gpiod.Chip("0", gpiod.Chip.OPEN_BY_NUMBER)

gpio0_b0 = chip0.get_line(LINE_OFFSET)
gpio0_b0.request(consumer="gpio", type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])

print(gpio0_b0.consumer())

try:
    while True:
        gpio0_b0.set_value(1)
        time.sleep(0.5)
        gpio0_b0.set_value(0)
        time.sleep(0.5)
finally:
    gpio0_b0.set_value(1)
    gpio0_b0.release()

我们通过万用表检测该引脚的电压是否会在高低电压中进行反复横跳
 

GPIO15对应的位置在11

开源

 

GPIO输入
 

import time
import gpiod

LINE_OFFSET =23

chip0 = gpiod.Chip("0",gpiod.Chip.OPEN_BY_NUMBER)
gpio0_b7 = chip0.get_line(LINE_OFFSET)
gpio0_b7.request(consumer="gpio", type=gpiod.LINE_REQ_DIR_IN, default_vals=[0])

try:
    while True:
        value = gpio0_b7.get_value()
        time.sleep(0.5)
        print("gpio status: ",value)
finally:
    gpio0_b7.release()
    chip.close

 

给此GPIO也就是23脚连接3.3V的电平,终端输出1;将此GPIO连接到GND,终端输出0。

开源


双排针Pin功能定义

序号
 
定义
 
电平
 
说明
 
1
 
VDD_3V3
 
3.3V
 
供电输出3.3V
 
2
 
VDD_5V
 
5V
 
可做5V输入供电,也可输出5V
 
3
 
I2C_SDA
 
3.3V
 
I2C数据信号
 
4
 
VDD_5V
 
5V
 
可做5V输入供电,也可输出5V
 
5
 
I2C_SCL
 
3.3V
 
I2C时钟信号
 
6
 
GND
 
GND
 
电源地
 
7
 
GPIO_7
 
3.3V
 
gpio编号为23
 
8
 
UART_TXD
 
3.3V
 
/dev/ttyS0 发送
 
9
 
GND
 
GND
 
电源地
 
10
 
UART_RXD
 
3.3V
 
/dev/ttyS0 接收
 
11
 
GPIO_0
 
3.3V
 
gpio编号为15
 
12
 
GPIO_1
 
3.3V
 
gpio编号为22
 
13
 
GPIO_2
 
3.3V
 
gpio编号为20
 
14
 
GND
 
GND
 
电源地
 
15
 
GPIO_3
 
3.3V
 
gpio编号为21
 
16
 
GPIO_4
 
3.3V
 
gpio编号为124
 
17
 
VDD_3V3
 
3.3V
 
供电输出3.3V
 
18
 
GPIO_5
 
3.3V
 
gpio编号为125
 
19
 
SPI_MOSI
 
3.3V
 
SPI数据信号
 
20
 
GND
 
GND
 
电源地
 
21
 
SPI_MISO
 
3.3V
 
SPI数据信号
 
22
 
GPIO_6
 
3.3V
 
gpio编号为130
 
23
 
SPI_SCLK
 
3.3V
 
SPI时钟信号
 
24
 
SPI_CS0
 
3.3V
 
SPI片选信号0
 
25
 
GND
 
GND
 
电源地
 
26
 
SPI_CS1
 
3.3V
 
SPI片选信号1
 
27
 
GPIO_30
 
3.3V
 
gpio编号为138
 
28
 
GPIO_31
 
3.3V
 
gpio编号为139
 
29
 
GPIO_21
 
3.3V
 
gpio编号为132
 
30
 
GND
 
GND
 
电源地
 
31
 
GPIO_22
 
3.3V
 
gpio编号为121
 
32
 
GPIO_26
 
3.3V
 
gpio编号为120
 
33
 
GPIO_23
 
3.3V
 
gpio编号为122
 
34
 
GND
 
GND
 
电源地
 
35
 
GPIO_24
 
3.3V
 
gpio编号为127
 
36
 
GPIO_27
 
3.3V
 
gpio编号为123
 
37
 
GPIO_25
 
3.3V
 
gpio编号为133
 
38
 
GPIO_28
 
3.3V
 
gpio编号为126
 
39
 
GND
 
GND
 
电源地
 
40
 
GPIO_29
 
3.3V
 
gpio编号为131
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分